Javascript 为什么我的React复选框onChange处理程序在渲染时启动,而在单击该复选框时不启动?

Javascript 为什么我的React复选框onChange处理程序在渲染时启动,而在单击该复选框时不启动?,javascript,reactjs,Javascript,Reactjs,阅读了React文档并将问题归结为一个简单的案例,仍然不能完全理解我做错了什么 JSFIDLE:或写在下面: var TestForm = React.createClass({ render : function() { return ( <div> <p>Test Form</p> <form>

阅读了React文档并将问题归结为一个简单的案例,仍然不能完全理解我做错了什么

JSFIDLE:或写在下面:

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(参数)}来解决此问题
如果需要传入参数。

如果需要发送参数怎么办?@RMontes13
this.handleCheck.bind(null,parameter)