我在使用redux显示警告对话框时出现问题。我希望在用户编辑完表单后显示成功消息。我通过行动设置了一个标志>还原剂>商店。
然后我做
componentWillReceiveProps(nextProps) {
if(nextProps.data.updated_form) {
alert('form has been updated!');
}
}
这种方法存在问题。用户更新了表单,然后点击某处转到其他路线,然后点击返回我的表单,该警报也会触发。
答案 0 :(得分:0)
现有解决方案存在的问题是商店的updated_form
变量不会随时间而变化。因此,返回页面会重新触发警报。一个简单的解决方案是创建另一个动作创建器来重置componentWillUnmount()上的那些更改。
样品库减速机可以这样
case 'RESET_CHANGES':
return {...state,updated_form:null}
反应组件将具有类似的代码
componentWillUnmount() {
this.props.resetChanges() // assuming you have created action creator
}