访问从asyncValidate函数触及的表单

时间:2018-06-21 08:06:35

标签: react-redux redux-form

使用redux-form 7.3.0。 我遇到这样的情况,我的asyncValidate函数将数据发送到验证表单的Web服务,而无需了解表单布局,触摸过哪些字段等。该Web服务包含条件验证规则,例如,如果字段A是必填字段B包含一个值。

这意味着Web服务的响应可能包含尚未触摸的字段的验证错误。在asyncValidate函数中,我加载了包含验证错误的对象,但是,如果字段尚未被触摸,我不想要添加验证错误。

这是我的asyncValidate函数

const asyncValidate = (values, dispatch, props) => {
  const request = axios.post(`${ROOT_URL}/validate`, {...values, id: props.form} );

  return request
     .then(response => {
        const errors = response.data.record.fErrors;

        let emap = {}
        for (const key of Object.keys(errors)) {
            emap[key] = errors[key].message;
        }
        return emap;
      })
     .catch((error) => console.log("Validation Response", error.response.data));
}

是否有任何方法可以访问保持字段是否被触摸的状态,即form。 formname .fields状态对象?发送到asyncValidate的道具不提供此访问权限。

如果对如何实现这一目标没有任何想法?

0 个答案:

没有答案