我正在尝试构建一个表单,如果 redux-form 验证通过,它将像任何其他 HTML 表单一样提交。如果验证失败,我希望它触及所有字段并阻止提交。
所以我需要:编写我自己的 onSubmit 函数,如果验证失败,它将触及字段。我正在尝试:
这个实现:
handleSubmit (event) {
const {touch, fields} = this.props
if (!allValid(fields)) {
event.preventDefault()
touch(...fields)
}
}
产生此错误:TypeError: Cannot read property 'indexOf' of undefined
不在调用touch
. touch
我在追查touch
.
如果验证失败,使用内置的 handleSubmit 将获得正确的触摸行为,但是如果验证也通过了,我无法弄清楚如何让它像普通的 HTML 表单一样提交表单,而无需做这样的骇人听闻的事情:
handleSubmit (event) {
const {touch, fields} = this.props
if (!allValid(fields)) {
event.preventDefault()
this.props.handleSubmit(() => {})()
}
}
这确实有效,但似乎是一个不好的方法。