我有一个向导表单,它分为4个不同的路由。用户可以通过4个向导步骤中的任何一个提交表单。
当我从服务器收到字段错误时,我使用"stopSubmit"操作创建者将它们放在redux存储中(也尝试过使用setSubmitFailed,但我没有得到它所带来的区别(。在调度之后,字段错误将正确显示在每个字段上。
但是,当我切换到任何其他步骤/页面时,"@@redux-form/INTIALIZE"操作会自动发生,并且我之前的所有提交错误都会从存储中删除。
在切换路线/表格时,如何保留它们?
我猜您正在寻找destroyOnUnmount: false
。
指定destroyOnUnmount:false标志以在表单组件卸载期间保留表单数据。
export default reduxForm({
destroyOnUnmount: false
})(Form)
此外,您还可以通过forceUnregisterOnUnmount: true
,因为以下是文档所说的:
是否强制注销字段--与destroyOnUnmount一起使用。对于要在卸载时销毁字段但不销毁表单状态的向导类型表单非常有用。默认值为false,因为表单通常在卸载时未注册。
这里有一个完整的示例,其中错误会保存在不同的向导表单(步骤(中。