如何在ReduxForm中手动重新触发验证?

时间:2016-11-30 10:58:09

标签: redux-form

我喜欢在表单挂载后重新触发验证。让我们假设每次点击名为“验证输入”的按钮时都要运行验证。

怎么做?

相关问题:

4 个答案:

答案 0 :(得分:4)

手动redux格式验证是oft requested feature,目前似乎没有提供。

我个人的解决方法是在this.props.change('_validationHack', Date.now())包装的组件中触发reduxForm,然后在values._validationHack方法中删除onSubmit,然后再将values发送到服务器。

虽然不漂亮,但似乎毫无例外。

答案 1 :(得分:1)

同步验证在每个渲染上运行,因此"触发它"并没有多大意义。

如果您想使用异步验证,可以调用this.props.asyncValidate()函数来触发它。

OR ,如果您更喜欢提交验证,则只需提交表单即可。

答案 2 :(得分:1)

这对我有用:

import { touch, stopAsyncValidation } from 'redux-form';
//...
    yield put(stopAsyncValidation('CallForm', { mdn: mdn.error_message }));
    yield put(touch('CallForm', 'mdn'));

答案 3 :(得分:0)

根据2018年11月28日:

  

https://redux-form.com/6.2.1/docs/api/actioncreators.md/

您可以分派一些操作来对表单进行更改并触发验证方法。

如果您触发更改/触摸操作,则应执行验证功能。