Reactjs 我能';不要用钩子。我不能用对象设置用户。我该怎么办?

Reactjs 我能';不要用钩子。我不能用对象设置用户。我该怎么办?,reactjs,Reactjs,我的react挂钩运行不正常有问题。 我无法更新用户的状态。下图描述了我在尝试获取数据并进行渲染时收到的错误消息: 我的组件似乎不会渲染。 以下是注释中要求的组件源代码: import React, { useEffect, useState } from "react"; import axios from "axios"; import map from "../map.png"; import { Row, Col } from

我的react挂钩运行不正常有问题。
我无法更新用户的状态。下图描述了我在尝试获取数据并进行渲染时收到的错误消息:

我的组件似乎不会渲染。 以下是注释中要求的组件源代码:

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可能是反模式,但它不是此问题的原因