如何用getderivedstatefromprops替换componentDidMount?

时间:2019-07-14 22:47:28

标签: javascript reactjs

我想使用getderivedstatefromprops在selectedPlan收到与prop defaultPlan不同的数字时更新selectedPlan的状态。

我试图将componentDidMount转换为props的getderivedstate,但是getderivedstatefromprops似乎没有在我的组件中被调用?

state = {
    selectedPlan: 0,
};

static getderivedstatefromprops(props, state){
  if (props.defaultPlan !== state.selectedPlan) {
    return{
      selectedPlan: props.defaultPlan
    };
  }
  return null;
}

componentDidMount() {
  if (this.props.plans.length > this.props.defaultPlan) {
    this.setState({ selectedPlan: this.props.defaultPlan });
  }
}

我在PureComponent中使用它,我不确定这是否是它不起作用的原因吗?

0 个答案:

没有答案