我试图了解这种新的生命周期方法(getDerivedStateFromProps)如何工作,并且我不确定为什么在使用此方法设置状态字段后无法访问状态字段。 我会解释我的意思。
状态:
this.state = {
status: "Activ",
currPage: "1",
favorites: [],
profileType: ""
};
Bellow是将nextProps与prevState进行比较并返回设置状态的对象的方法。这样可以正常工作,并且状态设置正确。
static getDerivedStateFromProps(nextProps, prevState) {
if (nextProps.profile) {
if (nextProps.profile !== prevState.profileType) {
return { profileType: nextProps.profile.profile.profileType };
}
}
return null;
}
接下来,在componentDidMount()中,我尝试从状态记录profileType。根据我的阅读,此方法在getDerivedStateFromProps之后被调用,因此状态应该现在设置。
componentDidMount() {
this.props.getCurrentProfile();
console.log("Profile Type is: " + this.state.profileType);
}
仍然,记录下来,给了我undefined
。
我在这里做什么错了?