在 React-final-form 的 Field 中,如何将输入值转换为仅在模糊时浮动?

In Field from react-final-form how to convert input value to float only on blur?

如果我使用'parse',则用户不能输入小数点分隔符。

因为 "9." 被解析为 9 并立即替换输入文本。

沙盒:https://codesandbox.io/s/xmj92nnpo

是的。这是一个常见问题。如果要允许小数点,则必须将该值保留为字符串,然后在提交时将其转换为数字。您仍然可以使用 parse 删除任何非法字符(或 <input> 上的 type="number"),但您不能在每次按键时将其解析为数字,否则您将丢失小数点.

我最终得到了我自己的有状态输入组件,在内部状态中带有 'editing' 标志。我只在模糊时调用 Field 的 'onChange' 事件处理程序。

https://codesandbox.io/s/2zpn29zzjj