Javascript 为什么我的React复选框onChange处理程序在渲染时启动,而在单击该复选框时不启动?
阅读了React文档并将问题归结为一个简单的案例,仍然不能完全理解我做错了什么 JSFIDLE:或写在下面:Javascript 为什么我的React复选框onChange处理程序在渲染时启动,而在单击该复选框时不启动?,javascript,reactjs,Javascript,Reactjs,阅读了React文档并将问题归结为一个简单的案例,仍然不能完全理解我做错了什么 JSFIDLE:或写在下面: var TestForm = React.createClass({ render : function() { return ( <div> <p>Test Form</p> <form>
var TestForm = React.createClass({
render : function() {
return (
<div>
<p>Test Form</p>
<form>
<TestBox />
</form>
</div>
)
}
});
var TestBox = React.createClass({
render : function() {
return (<input type="checkbox" name={"testbox"} defaultChecked={true} onChange={this.handleCheck()}/>)
},
handleCheck : function(event) {
console.log("check");
console.log(event);
}
});
var TestForm=React.createClass({
render:function(){
返回(
测试表
)
}
});
var TestBox=React.createClass({
render:function(){
返回()
},
handleCheck:函数(事件){
控制台日志(“检查”);
console.log(事件);
}
});
当页面加载时,我在日志中得到一个“check”,后面是事件的“undefined”,然后它不会在后续的单击中再次触发。我已经尝试了onClick和onChange,并创建了一个受控(checked={true})而不是上面的非受控(defaultChecked={true})
谢谢 因为您已经在render上调用了该方法
将
onChange={this.handleCheck()}
更改为onChange={this.handleCheck}
对于将来阅读本文的任何人(如我),您也可以通过格式化onClick={(e)=>this.handleCheck(参数)}来解决此问题
如果需要传入参数。如果需要发送参数怎么办?@RMontes13this.handleCheck.bind(null,parameter)