React仅针对单选按钮触发更改事件一次

时间:2017-07-29 21:33:29

标签: javascript reactjs

我对如何处理无线电输入的变化事件的反应感到困惑:

var Hello = React.createClass({
onChange: function(e) {
  console.log(e);
},
render: function() {
  return (
    <form onChange={this.onChange}>
       <input type='radio' name='a' value="1" />
       <input type='radio' name='a' value="2" />
       <input type='checkbox' name='a' />
       <input type='checkbox' name='a1' />
    </form>
    )
  }
});

对于无线电,它似乎只触发事件一次,而对于复选框类型,它按预期工作?
我做错了什么?

请考虑the fiddle

2 个答案:

答案 0 :(得分:2)

onChange回调添加到输入而不是整个表单。您可以在此问题Entire form onChange

中详细了解相关内容

答案 1 :(得分:1)

In 15.6.1, the first change fires, but all subsequent changes do not fire. In 15.5.4, all changes fire.

它将在15.6.2版本https://github.com/facebook/react/issues/10168

中修复