调用redux动作后设置状态的正确方法是什么?在我以前使用componentWillReceiveProps做到这一点之前,但现在正如我所阅读的那样,它被认为是传统的,应该避免使用。问题是,如果不使用此方法,应如何设置状态?
我给你举个例子:
componentDidMount() {
this.props.getProfile();
}
假设我在componentDidMount()中调用此getProfile动作,结果得到一个配置文件对象,其中除其他外,其中包含一个简单的字符串字段,例如color: "red".
基于我从调用getProfile()获得的颜色字段,我想设置状态并调用另一个redux操作,而不执行任何单击操作或任何操作。我想打this.props.getFavoriteColor(this.state.color)
最佳做法是什么?
答案 0 :(得分:0)
static getDerivedStateFromProps(nextProps, prevState)
该新功能的主要职责是确保状态和道具在需要时保持同步。它的主要工作是替换componentWillReceiveProps
签出文档:https://reactjs.org/docs/react-component.html#unsafe_componentwillreceiveprops
答案 1 :(得分:0)
我会做以下事情:
async componentDidMount() {
const {color} = await this.props.getProfile();
this.props.getFavoriteColor(color)
}