我有一个向导表单,分为4条不同的路线。用户可以通过4个向导步骤中的任何一个提交表单。
当我从服务器收到字段错误时,我使用“ stopSubmit”动作创建者将它们放置在redux-store上(也使用setSubmitFailed进行了尝试,但没有得到区别)。分派之后,在每个字段上正确显示字段错误。
但是,当我切换到其他任何步骤/页面时,“ @@ redux-form / INITIALIZE”操作会自动发生,并且我之前输入的所有提交错误都将从商店中删除。
在切换路线/表单时如何保留它们?
答案 0 :(得分:2)
我猜您正在寻找destroyOnUnmount: false
。
指定destroyOnUnmount:false标志以保留跨窗体组件卸载的窗体数据。
export default reduxForm({
destroyOnUnmount: false
})(Form)
您也可以通过forceUnregisterOnUnmount: true
,因为这是文档所说的:
是否强制取消字段注册-与destroyOnUnmount结合使用。对于向导类型的表单很有用,在这种类型的向导中,您想在卸载字段时销毁字段,但不销毁表单的状态。默认值为false,因为表单通常在卸载时未注册。
这是complete example,错误在不同的向导形式(步骤)中保留。