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

时间:2018-10-29 16:19:32

标签: javascript validation redux react-redux 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重新选择一个值。我怎样才能做到这一点?我尝试使用以下link's文档,但也许我滥用了变更功能。也许更改功能甚至不是解决方案。

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

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

1 个答案:

答案 0 :(得分:0)

我发现的解决方案是:

import { change } from 'redux-form';

export const clearFormName = (reduxFormName, filingFormName, value) => {
    return function (dispatch) {
        dispatch(change(reduxFormName, filingFormName, value));
    };
};

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