从向导形式的“片断”切换到另一个表单后,如何保持Redux形式的提交错误?

时间:2018-11-23 12:53:59

标签: reactjs redux redux-form

我有一个向导表单,分为4条不同的路线。用户可以通过4个向导步骤中的任何一个提交表单。

当我从服务器收到字段错误时,我使用“ stopSubmit”动作创建者将它们放置在redux-store上(也使用setSubmitFailed进行了尝试,但没有得到区别)。分派之后,在每个字段上正确显示字段错误。

但是,当我切换到其他任何步骤/页面时,“ @@ redux-form / INITIALIZE”操作会自动发生,并且我之前输入的所有提交错误都将从商店中删除。

在切换路线/表单时如何保留它们?

1 个答案:

答案 0 :(得分:2)

我猜您正在寻找destroyOnUnmount: false

  

指定destroyOnUnmount:false标志以保留跨窗体组件卸载的窗体数据。

export default reduxForm({
  destroyOnUnmount: false
})(Form)

您也可以通过forceUnregisterOnUnmount: true,因为这是文档所说的:

  

是否强制取消字段注册-与destroyOnUnmount结合使用。对于向导类型的表单很有用,在这种类型的向导中,您想在卸载字段时销毁字段,但不销毁表单的状态。默认值为false,因为表单通常在卸载时未注册。

这是complete example,错误在不同的向导形式(步骤)中保留。