使用 Redux Form 处理数字输入会做一些奇怪的事情

Jan*_*art 3 html reactjs redux redux-form

https://redux-form.com/7.2.1/examples/fieldlevelvalidation/上的 age 字段为例。

您可以输入数字、+、- 和 e。像下面这样:

在此处输入图片说明

但看起来 Redux Form 无法识别这些输入。如果您尝试使用 parse 或 normalize 生命周期方法,则该值会显示为 ''。

同样在屏幕截图中,验证表明该字段是必需的,就好像它是空的一样。

有没有办法处理这些?

And*_*kin 5

处理它的简单方法是这样使用parse

<Field
    name="age"
    type="number"
    component={renderField}
    label="Age"
    validate={[required, number, minValue18]}
    warn={tooOld}
    parse={(val) => parseInt(val, 10)}
  />
Run Code Online (Sandbox Code Playgroud)

但是parse函数应该比这个例子更聪明 =)

PS不要忘记,根据文档,您应该从parsehttps://redux-form.com/7.2.1/docs/api/field.md/#-code-format-value-name-gt -formattedvalue-code-optional- )

与LC 的UPD
示例。- https://codesandbox.io/s/x7n01yvj5ztype='string'normalize