【发布时间】:2017-02-08 18:28:04
【问题描述】:
我在 React 应用程序中输入了一个受控数字,当我删除小数点右侧的所有数字时,小数点本身也会被删除。所以当我有1.1,并删除最右边的1,它应该留下1.;但该点也被自动移除,留下1,光标移到最前面。
有关最小示例,请参阅此小提琴:https://jsfiddle.net/sashee/e00s7h9d/。只需在输入上按退格键即可观察行为。
经过一番谷歌搜索,我认为问题的根源在于1.被视为1,无法从输入中提取当前值。
因此,当我删除最右边的 1 时,会发生以下情况:
- 调用更改处理程序
- 值为1
- React 将 state 中的值更新为 1
- 输入现在的值为 1,而不是 1。
正如我所见,这不是错误,而是架构的奇怪结果。有没有使用数字输入的解决方法?还是我应该回退到常规文本输入?
更新:
它在 Firefox 中运行良好,但在 Chrome 中却不行。
【问题讨论】:
标签: reactjs