在Redux-Form上,我可以在验证后但在提交之前处理值吗?

时间:2016-05-21 13:16:34

标签: javascript reactjs redux redux-form

我使用Redux-Form并且我有以下情况:

数字和日期时间很奇怪,因为在填写完字段(例如12/08/)之前,它们可能无效。此外,您可能有多个代表相同值的字符串(例如2.50002.5)。

出于这个原因,我决定在表单和应用程序状态中将所有字段保留为字符串

问题是,在验证之后,我需要处理字段的值,以便进入服务器的JSON实际上有数字和日期时间而不仅仅是字符串。

这是理想的解决方案吗?如果是这样,我该怎么做?

1 个答案:

答案 0 :(得分: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>
  )
}