我刚开始使用反应并注意到一些让我烦恼的事情 . 有人可以向我解释为什么在处理受控号码输入时会发生以下行为:

我有一个"number"类型的输入,其值设置为 state.foo . 它是一个带有onChange事件处理程序的受控输入元素,它基本上将输入的值存储到 state.foo 中 . 有了这个,为什么键入像"1.."这样的东西不清除输入元素,尽管 state.foo 变空(因为"1.."不是数字)?如果我按退格键删除1个点("1."),然后重新键入删除的点("1.."),所有这些都不会失去对输入的关注,上面的相同行为仍然存在 . 如果我点击退格然后点击输入,"1."突然变成"1" . 如果我输入1个前导点("1.")然后单击输入,单点将保持此时间 . 如果我然后键入另一个前导点("1..")然后单击,数字元素将消隐 . 为什么不一致?

希望我的解释为何足够清楚 . 下面是一个测试它的快速示例 . 我顺便说一句,我只在Chrome上试过这个

https://codepen.io/anon/pen/GOXvmX