0

Redux-Formを使用しており、次のシナリオがあります。

数値と日時は、フィールドへの入力が完了するまで無効12/08/になる可能性があるため、特殊です (例: )。また、同じ値を表す文字列が複数ある場合もあります (例: 2.5000and 2.5)。

そのため、フォームとアプリケーション状態の両方で、すべてのフィールドを文字列として保持することにしました。

問題は、検証後にフィールドの値を処理して、サーバーに送信される JSON が実際に文字列だけでなく数値と日時を持つようにする必要があることです。

これは理想的なソリューションですか?もしそうなら、どうすればそれを行うことができますか?

4

1 に答える 1

2

あなたの推論は正しいようです。データを文字列に変換する「フォーマッタ」がすでに実行されているため、必要なのは、フォームonSubmitと ajax 呼び出しの間の「パーサー」です。

render() {
  const { fields, handleSubmit } = this.props
  return (
    <form onSubmit={handleSubmit(values => {
        // all values are guaranteed to pass sync validation here,
        // so they should all parse just fine.
        const parsedValues = parseIntoRealDataTypes(values)
        return ajax.post('/api/myWidgets', parsedValues)
          .then(response => {
            // rejoice
          })
      })}>
    </form>
  )
}
于 2016-05-21T22:24:14.857 に答える