为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

凤凰求蛊 2021-10-14 12:47:05
我有一个组件,在该组件中我想根据值的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()在属于前一个渲染的道具不等于新渲染时调用。


查看完整回答
反对 回复 2021-10-14
  • 1 回答
  • 0 关注
  • 152 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信