javascript - 如何用 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 中使用它,我不确定这是否是它不起作用的原因?
解决方案
推荐阅读
- c++ - C++ 使用倒序用逗号打印列表
- javascript - 为什么“this”在函数中定义并传递给 IIFE 引用函数本身?
- c++ - CPP 代码中的 FileNotFound 异常
- php - #PHP,Laravel Oauth 错误 invalid_request:redirect_uri 未列入白名单
- neural-network - VGG16的感受野大小
- python - PyTaglib / Taglib DSD/DSF 格式
- c++ - 优化在堆上创建的冗余变量
- python - 像交互式运行一样运行 python 脚本
- javascript - Pusher:在 App\Events\Event 的 testChannel 上没有回调
- ruby-on-rails - Rails - 如何在 db:migrate 之后自定义进程