Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 如何在从向导表单切换后保留redux表单提交错误;“件”;另一个?_Reactjs_Redux_Redux Form - Fatal编程技术网

Reactjs 如何在从向导表单切换后保留redux表单提交错误;“件”;另一个?

Reactjs 如何在从向导表单切换后保留redux表单提交错误;“件”;另一个?,reactjs,redux,redux-form,Reactjs,Redux,Redux Form,我有一个向导表单,它分为4个不同的路径。用户可以通过4个向导步骤中的任何一个提交表单 当我从服务器接收到字段错误时,我使用“stopSubmit”操作创建者将它们放在redux存储中(尝试使用setSubmit也失败了,但我没有得到它带来的区别)。发送后,每个字段上都会正确显示字段错误 但是,当我切换到任何其他步骤/页面时,“@@redux form/INITIALIZE”操作将自动发生,并且我以前输入的所有提交错误都将从存储中删除 切换路由/表单时如何保存它们?我猜您正在查找destroonU

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

当我从服务器接收到字段错误时,我使用“stopSubmit”操作创建者将它们放在redux存储中(尝试使用setSubmit也失败了,但我没有得到它带来的区别)。发送后,每个字段上都会正确显示字段错误

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


切换路由/表单时如何保存它们?

我猜您正在查找
destroonUnmount:false

指定destroyOnUnmount:false标志以跨表单组件卸载保留表单数据


您还可以传递
forceUnregisterOnUnmount:true
,因为文档中说:

是否强制注销字段--与destroyOnUnmount结合使用。对于要在卸载字段时销毁字段而不是窗体状态的向导类型窗体非常有用。默认值为false,因为表单通常在卸载时取消注册


下面是一个示例,其中错误在不同的向导表单(步骤)中保留。

我猜您正在查找
destroonUnmount:false

指定destroyOnUnmount:false标志以跨表单组件卸载保留表单数据


您还可以传递
forceUnregisterOnUnmount:true
,因为文档中说:

是否强制注销字段--与destroyOnUnmount结合使用。对于要在卸载字段时销毁字段而不是窗体状态的向导类型窗体非常有用。默认值为false,因为表单通常在卸载时取消注册


下面是一个示例,其中错误在不同的向导表单(步骤)中保留。

实际上,我已经按照您解释的方式设置了这两个标志,但是当我更改显示的表单组件时,提交错误仍然丢失。我还将InitialValue设置为mapStateToProps。通过检查redux开发工具,我看到当我切换到表单页面时会发生操作“@@redux form/INITIALIZE”,而这个操作只是删除我的提交错误。真奇怪!你查过我提到的那个吗?在这里,如果您成功地提交了步骤1,然后提交了步骤2并显示了错误,请返回到步骤1,最后再次返回到步骤2,然后仍然保留错误。我猜你也想要达到同样的行为。因此,请遵循这个例子。如果它对您没有帮助,请提供一个工作代码示例(JSFIDLE、sandbox),它将帮助我们支持您。祝你好运!:)实际上,我已经按照您解释的方式设置了这两个标志,但是当我更改显示的表单组件时,提交错误仍然丢失。我还将InitialValue设置为mapStateToProps。通过检查redux开发工具,我看到当我切换到表单页面时会发生操作“@@redux form/INITIALIZE”,而这个操作只是删除我的提交错误。真奇怪!你查过我提到的那个吗?在这里,如果您成功地提交了步骤1,然后提交了步骤2并显示了错误,请返回到步骤1,最后再次返回到步骤2,然后仍然保留错误。我猜你也想要达到同样的行为。因此,请遵循这个例子。如果它对您没有帮助,请提供一个工作代码示例(JSFIDLE、sandbox),它将帮助我们支持您。祝你好运!:)
export default reduxForm({
  destroyOnUnmount: false
})(Form)