0

我正在使用Redux-Form,我有以下场景:

数字和日期时间是特殊的,因为在您填写完字段(例如 )之前它们可能是无效12/08/的。此外,您可能有多个字符串表示相同的值(例如2.50002.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 回答