componentWillRecieveProps中的redux状态问题有前进和后退按钮

时间:2017-09-10 05:01:39

标签: reactjs redux

我在使用redux显示警告对话框时出现问题。我希望在用户编辑完表单后显示成功消息。我通过行动设置了一个标志>还原剂>商店。

然后我做

componentWillReceiveProps(nextProps) {

    if(nextProps.data.updated_form) {
      alert('form has been updated!');
    }
}

这种方法存在问题。用户更新了表单,然后点击某处转到其他路线,然后点击返回我的表单,该警报也会触发。

1 个答案:

答案 0 :(得分:0)

现有解决方案存在的问题是商店的updated_form变量不会随时间而变化。因此,返回页面会重新触发警报。一个简单的解决方案是创建另一个动作创建器来重置componentWillUnmount()上的那些更改。

样品库减速机可以这样

case 'RESET_CHANGES':
    return {...state,updated_form:null}

反应组件将具有类似的代码

componentWillUnmount() {
     this.props.resetChanges() // assuming you have created action creator
}