我有一个组件,在该组件中我想根据值的props值显示状态。我总是得到一个错误,在网上找不到一个好的例子。这是我的组件(波纹管),我想this.state.msg在this.props.passRecoveryEditSuccess.password_changed等于时显示值1我编写了massage应该设置状态的函数,msg取决于从减速器返回的内容。问题是我不断得到即将到来的结果:我怎么解决这个问题?
1 回答
POPMUISE
TA贡献1765条经验 获得超5个赞
您正在创建一个无限循环。componentDidUpdate()每当您的状态或道具在组件中发生变化时都会被调用。所以在第一次渲染之后,你从 redux 得到更新的 props,所以componentDidUpdate()触发,条件通过,你调用this.massage()
然后this.massage()更新组件的状态 re-triggers componentDidUpdate(),它在调用之前检查完全相同的条件this.massage(),从而创建循环。
您可以做的是将prevProps参数放入其中componentDidUpdate()并使用它来创建更受保护的条件。
componentDidUpdate(prevProps){
if(this.props.passRecoveryEditSuccess !== prevProps.passRecoveryEditSuccess){
this.massage()
}
}
有了这个,你是说你只会this.massage()在属于前一个渲染的道具不等于新渲染时调用。
添加回答
举报
0/150
提交
取消