还原动作后正确设置状态的方法

时间:2018-07-23 14:25:13

标签: reactjs redux

调用redux动作后设置状态的正确方法是什么?在我以前使用componentWillReceiveProps做到这一点之前,但现在正如我所阅读的那样,它被认为是传统的,应该避免使用。问题是,如果不使用此方法,应如何设置状态?

我给你举个例子:

  componentDidMount() {
    this.props.getProfile();
  }

假设我在componentDidMount()中调用此getProfile动作,结果得到一个配置文件对象,其中除其他外,其中包含一个简单的字符串字段,例如color: "red".

基于我从调用getProfile()获得的颜色字段,我想设置状态并调用另一个redux操作,而不执行任何单击操作或任何操作。我想打this.props.getFavoriteColor(this.state.color) 最佳做法是什么?

2 个答案:

答案 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)
}