为什么我的 React 复选框在渲染时触发更改处理程序,然后在单击该框时不触发
Why is my React checkbox onChange handler firing on render and then not when the box is clicked?
通读了 React 文档并将问题归结为一个简单的案例,仍然无法完全理解我做错了什么。
JSFiddle:https://jsfiddle.net/justin_levinson/pyn7fLq5/或写在下面:
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);
}
});
当页面加载时,我在日志中得到一个"检查",然后是事件的"未定义",然后它不会在后续点击时再次触发。 已经尝试过使用onClick和onChange以及创建一个受控的(checked={true})而不是上面的不受控制的(defaultChecked={true})。
谢谢!
因为你已经在渲染时调用了该方法。
将onChange={this.handleCheck()}
更改为onChange={this.handleCheck}
对于将来阅读本文的任何人(如我),如果需要传入参数,您也可以通过像onClick={(e) => this.handleCheck(parameter)}
这样的格式来解决此问题。
相关文章:
- 在变量中保存值的最佳方法是在应用程序关闭后使用,然后使用apachecordova在android中重新启动
- Chrome扩展程序 - 页面更新两次,然后在YouTube上删除
- 如何要求用户输入一个介于 1 和 50 之间的整数,然后小程序打印出一行这个星数
- AngularJS:跟踪在Web应用程序中花费的时间,然后在特定时间触发事件
- 如何使用ajax将字符串传递给python程序,然后将字符串发回
- 将twitter引导程序popover设置为在某个事件之后隐藏,然后在另一个事件之后显示
- Jquery OOP 模型阻止默认然后调用基处理程序
- Chrome扩展程序获取DOM文本并在弹出窗口中显示.html然后单击按钮
- NFC RFID应用程序读取标签,然后将其存储以供以后使用
- 执行 C# 事件处理程序,然后执行该 js 函数
- 为什么我的 React 复选框在渲染时触发更改处理程序,然后在单击该框时不触发
- 如何在应用程序模板中先加载 Ember 组件,然后再加载其他所有内容
- 从应用程序加载网页,然后单击该页面上的链接
- 一个程序PhantomJS如何等待AngularJS$资源解析,然后再尝试测试返回的数据
- jQuery爬网程序大对象/$.each/Ajax IN然后是Ajax OU
- 如何开始旋转一个引导程序字体真棒图标,然后用jQuery停止它
- JSJQuery -我如何摆脱提示,使程序等待用户的输入,然后对它作出反应
- 如何获取优步登录页面,然后重定向到声明页面使用谷歌应用程序脚本
- Spotify应用程序-预览10秒的轨道,然后跳过
- 谷歌应用程序脚本:找到单元格与一定的值,然后设置它的背景颜色