Reactjs-为什么不能设置状态?

问题描述 投票:0回答:2

[嗨,我正在尝试从jsonplaceholder获取用户数据,并使用该数据更新我的状态。我获取数据并将其记录到控制台没有问题。但是当我尝试setState时,我仍然得到一个空对象。感谢您的帮助。谢谢。

这是我的代码:

class ProfilePage extends React.Component {
  state = {
    profileDetails: {},
  };

  componentDidMount() {
    this.fetchDetails();
  }

  fetchDetails = async () => {
    const baseUrl = "https://jsonplaceholder.typicode.com";
    const pathname = this.props.history.location.pathname;
    const response = await fetch(`${baseUrl}${pathname}`);
    const data = await response.json();
    console.log(data);                 // I can see the data i want here in the console.

    this.setState = { profileDetails: data };
    console.log(this.state.profileDetails);       // I get an empty object here.
  };

  render() {
    return <h1>Name: {this.state.profileDetails.name}</h1>;
  }
}

export default ProfilePage;
javascript reactjs state setstate
2个回答
0
投票

提供检查数据的条件是否可用:-

if(data)
this.setState = ({ profileDetails: data });

0
投票

请这样更改-this.setState({profileDetails:data});


0
投票

来自setState的文档

反应不保证状态更改已应用 立即。

如果要使用最新数据,请使用callback参数

setState
© www.soinside.com 2019 - 2024. All rights reserved.