我在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),但是此调用出错了。
答案 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期间调用了我的动作。