根据Reactjs.org的说明,要处理事件并阻止默认行为,请使用以下代码:
function ActionLink() {
function handleClick(e) {
e.preventDefault();
console.log('The link was clicked.');
}
return (
<a href="#" onClick={handleClick}>
Click me
</a>
);
}
然而,这也需要在构造函数中添加绑定,例如:
this.handleClick = this.handleClick.bind(this);
我能通过以下代码获得所需的行为:
<span>
<a href="#" onClick={()=>doSomething(arg1,agr2)}>Click here</a>
</span>
问题:哪个选项更好?似乎第一个选项需要使用有状态组件,而第二个选项可以不考虑组件是有状态还是无状态就能完成任务。
onClick={this.handleClick.bind(this)}
的缺陷,即在每次渲染时都会创建一个新的函数。 - Steve Buzonas