既然某些浏览器(即IE)只有在失去焦点时才会为input
触发change
事件,那么我的理解是使用click
事件监听更改是更好的方法(请参见从onclick/onchange事件中获取HTML复选框的值)。
然而,在react中,当我仅将checked
属性与onClick
处理程序一起提供给受控input
元素时,它会抱怨:
Warning: Failed prop type: You provided a `checked` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultChecked`. Otherwise, set either `onChange` or `readOnly`.
这里的解决方案是什么?
React
文档似乎建议使用onChange
,但这与上面列出的答案中的推荐不一致。
onChange
在现代浏览器上的行为与你期望的一样。除非你可以自己测试,否则我建议使用onChange
而不是自己担心这个问题。 - cbr