【发布时间】:2020-10-02 03:15:52
【问题描述】:
您好,我正在尝试从 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;
感谢大家花时间回答。显然我用错了 setState 并错过了它是异步的事实。
【问题讨论】:
-
看看setState的使用方式reactjs.org/docs/state-and-lifecycle.html
-
尝试新的钩子方式
标签: javascript reactjs state setstate