Redux-form:keepDirtyOnReinitialize 导致表单在卸载后也保留值
Redux-form: keepDirtyOnReinitialize causes form to retain values also after unmount
这里使用redux-form。表单的一部分在 ajax 请求(select 中的项目列表)之后异步启动,这取决于用户 select 在单独的字段上编辑的内容。
为了实现这一点,我将新项目放入 initialValues
并 enableReinitialize: true
。 select 正确预填充,一切正常。
但是由于我想保留用户可能在表单中添加的其他值,所以我也 keepDirtyOnReinitialize: true
。
到目前为止一切顺利。
问题是,如果用户导航回另一个页面(没有提交表单),我想清除所有表单并从头开始。
似乎表单在卸载时被正确销毁,但是当我们再次导航回表单时,由于 keepDirty...
,先前的值被保留
窗体的卸载是否优于 keepDirty
?否则,这是在导航回另一页之前手动清理表单的唯一选择,还是我错过了更简单的方法?
问题是 'dirty' 值实际上是从 redux 存储中获取的,所以它不是保留它们的形式,而是我保留它们并以初始值再次将它们提供给 redux-form。我需要重新考虑一下我的代码。
这里使用redux-form。表单的一部分在 ajax 请求(select 中的项目列表)之后异步启动,这取决于用户 select 在单独的字段上编辑的内容。
为了实现这一点,我将新项目放入 initialValues
并 enableReinitialize: true
。 select 正确预填充,一切正常。
但是由于我想保留用户可能在表单中添加的其他值,所以我也 keepDirtyOnReinitialize: true
。
到目前为止一切顺利。
问题是,如果用户导航回另一个页面(没有提交表单),我想清除所有表单并从头开始。
似乎表单在卸载时被正确销毁,但是当我们再次导航回表单时,由于 keepDirty...
窗体的卸载是否优于 keepDirty
?否则,这是在导航回另一页之前手动清理表单的唯一选择,还是我错过了更简单的方法?
问题是 'dirty' 值实际上是从 redux 存储中获取的,所以它不是保留它们的形式,而是我保留它们并以初始值再次将它们提供给 redux-form。我需要重新考虑一下我的代码。