1

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(() => {})()
  }
}

これは機能しますが、それを行うには悪い方法のようです。

4

1 に答える 1

3

touchオブジェクトの配列ではなく、文字列の配列を期待していると思います。だからあなたはおそらく望んtouch(...Object.keys(fields))でいる.

于 2016-01-14T05:42:48.537 に答える