Reactjs 我能';不要用钩子。我不能用对象设置用户。我该怎么办?
我的react挂钩运行不正常有问题。Reactjs 我能';不要用钩子。我不能用对象设置用户。我该怎么办?,reactjs,Reactjs,我的react挂钩运行不正常有问题。 我无法更新用户的状态。下图描述了我在尝试获取数据并进行渲染时收到的错误消息: 我的组件似乎不会渲染。 以下是注释中要求的组件源代码: import React, { useEffect, useState } from "react"; import axios from "axios"; import map from "../map.png"; import { Row, Col } from
我无法更新用户的状态。下图描述了我在尝试获取数据并进行渲染时收到的错误消息: 我的组件似乎不会渲染。 以下是注释中要求的组件源代码:
import React, { useEffect, useState } from "react";
import axios from "axios";
import map from "../map.png";
import { Row, Col } from "react-bootstrap";
const Profile = (props) => {
const { id } = props.match.params;
const [user, setUser] = useState(0);
useEffect(() => {
axios
.get(`http://jsonplaceholder.typicode.com/users`)
.then((response) => {
const userAuthor=response.data.filter( (postAuthor) => postAuthor.id !== +id);
setUser(userAuthor=>userAuthor)
})
.catch((error) => {
console.log(error);
});
},[]);
return (
<div className="content-card">
{
console.log(user)
}
<Row className="justify-content-center post">
<Col md="6">
<h1 className="profile-name">{user.name}</h1>
<Row>
<Col md="3" className="profile-key">
Username
</Col>
<Col md="9" className="profile-value">
{user.username}
</Col>
<Col md="3" className="profile-key">
Email
</Col>
<Col md="9" className="profile-value">
{user.email}
</Col>
<Col md="3" className="profile-key">
Phone
</Col>
<Col md="9" className="profile-value">
{user.phone}
</Col>
<Col md="3" className="profile-key">
Website
</Col>
<Col md="9" className="profile-value">
{user.website}
</Col>
<Col md="3" className="profile-key">
Company
</Col>
<Col md="9" className="profile-value">
{user.company}
</Col>
</Row>
</Col>
<Col md="6">
<img src={map} />
</Col>
</Row>
<h2>{user.name}</h2>
</div>
);
};
export default Profile;
import React,{useffect,useState}来自“React”;
从“axios”导入axios;
从“./map.png”导入地图;
从“react bootstrap”导入{Row,Col};
常量配置文件=(道具)=>{
const{id}=props.match.params;
const[user,setUser]=useState(0);
useffect(()=>{
axios
.得到(`http://jsonplaceholder.typicode.com/users`)
。然后((响应)=>{
const userAuthor=response.data.filter((posauthor)=>posauthor.id!=+id);
setUser(userAuthor=>userAuthor)
})
.catch((错误)=>{
console.log(错误);
});
},[]);
返回(
{
console.log(用户)
}
{user.name}
用户名
{user.username}
电子邮件
{user.email}
电话
{user.phone}
网站
{user.website}
公司
{user.company}
{user.name}
);
};
导出默认配置文件;
这是一个错误,因为您试图渲染对象
您不能将console.log(user)
作为UI组件返回,只需从return中删除它,然后您可以在useEffect后使用它或以类似UI的名称呈现一些数据吗
您的状态挂钩可能很好。这是在尝试渲染对象时出现的问题。你的状态很好。从注释中可以看出,您试图呈现的对象是
user.company
。通过将其更改为user.company.name
您的代码应该运行良好添加最小的可复制代码,我认为还有一些问题这是一个错误,通常在尝试错误地渲染对象时发生。你的状态很可能很好。是否在某处渲染用户对象?您应该使用返回上方的console.log。可能您的错误与作为呈现对象的{console.log(user)}
有关?@SimenFjellstad我正在使用数组过滤器过滤api请求method@MustafaÖzgün您可以在问题中添加此组件的其余渲染代码吗?这是错误的。呈现中的console.log可能是反模式,但它不是此问题的原因