React js- 显示状态值取决于 redux props 值

我有一个组件,在该组件中我想根据值的props值显示状态。我总是得到一个错误,在网上找不到一个好的例子。

这是我的组件(波纹管),我想this.state.msgthis.props.passRecoveryEditSuccess.password_changed等于时显示值1

我编写了massage应该设置状态的函数,msg取决于从减速器返回的内容。

问题是我不断得到即将到来的结果:

http://img4.mukewang.com/6167b65e00010b6b10470556.jpg

我怎么解决这个问题?



凤凰求蛊
浏览 153回答 1
1回答

POPMUISE

您正在创建一个无限循环。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()在属于前一个渲染的道具不等于新渲染时调用。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript