[英]Correctly bind a function to Button onClick
这是一个React-Bootstrap-Button:
<Button onClick={console.log('Hello')} className="pull-right">Try me</Button>
我希望函数每次单击按钮后都执行。 但是,它将在页面加载时执行。 我读到某个地方应该绑定该函数:
<Button onClick={console.log('Hello').bind(null)} className="pull-right">Try me</Button>
这给了我错误:未捕获(承诺)TypeError:无法读取未定义的属性“ bind”。
我该怎么办?
您正在立即调用log
,然后尝试bind
其返回值( undefined
)。
您需要绑定函数本身。
您还需要将其绑定到console
上下文,而不是null
上下文。 log
关心它所附加的对象。
onClick={console.log.bind(console, 'Hello')}
惯用的React将单独创建函数,而不是尝试内联地执行该函数:
function myFunction () {
function handleClick(e) {
e.preventDefault();
console.log('Hello');
}
return (
<Button onClick={handleClick} className="pull-right">Try me</Button>
);
}
我认为这是您想要的:
<button onclick="javascript:console.log('Hello');" className="pull-right">Try me</button>
请注意onclick="javascript:console.log('Hello');"
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.