繁体   English   中英

如何清除redux形式的initialValues中的一个值?

[英]How to clear one value in initialValues for redux-form?

我的redux表单上有两个字段field_A和field_B。 这两个都是选择字段。 选择field_A之后,redux表单的initialValues将填充field_A的值,并加载field_B的选项供用户选择。 用户选择field_B之后,我的redux表单的initialValues将填充Field_B的值。

如果现在更改field_A,则将加载field_B的新选项供用户选择。 在UI上,field_B的值将清除,但initialValue仍具有field_B的值。 用户将能够提交此表单,而不会收到“必填”验证错误。 他们将field_A和field_B的不匹配组合发送到后端。

当我在选择field_A时执行onChange时,我想将field_B的值清除回undefined,以便用户无法提交表单,直到他们重新选择field_B的值为止。 我怎样才能做到这一点? 我尝试使用以下链接的文档,但也许我滥用了变更功能。 也许更改功能甚至不是解决方案。

我尝试了this.props.change(“ field_B”,undefined),但这没有更改initialValues.field_B的值。

我也尝试过this.props.initialValues.change(“ field_B”,undefined),但是此调用出错。

我找到的解决方案是:

 import { change } from 'redux-form'; export const clearFormName = (reduxFormName, filingFormName, value) => { return function (dispatch) { dispatch(change(reduxFormName, filingFormName, value)); }; }; 

我无法直接在表单上调用change函数,因此我创建了一个动作,并在field_A更改时在onChange期间调用了我的动作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM