首页 > 解决方案 > 如何用 getderivedstatefromprops 替换 componentDidMount?

问题描述

当它从道具 defaultPlan 接收到不同的数字时,我想使用 getderivedstatefromprops 来更新 selectedPlan 的状态。

我试图将 componentDidMount 转换为 getderivedstatefromprops,但 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 中使用它,我不确定这是否是它不起作用的原因?

标签: javascriptreactjs

解决方案


推荐阅读