【发布时间】:2017-06-29 00:31:19
【问题描述】:
我有一个返回主页的链接,其中有一个按钮可以从数组中删除一个项目。为了防止链接重定向到主屏幕并从数组中删除项目,我需要使用ev.preventDefault()。
是否可以在不使用render 方法中的箭头函数的情况下将ev 传递给react 方法?根据我的研究,特别是 the answer here,看来以下是唯一的方法。
我担心箭头函数每次都会导致重新渲染,因为每次渲染都会创建新函数。
removeItem(label, e) {
e.preventDefault();
this.props.removeItem(label.id);
}
render () {
const { label } = this.props;
return (
<Link to'/'>
<span>Go Home</span>
<span onClick={(e) => this.removeItem(label, e) }> Click me <span>
</Link>
);
}
【问题讨论】:
-
你可以去掉label参数,直接从
this.props获取label。然后你可以有onClick={this.removeItem} -
虽然,在每次渲染上创建一个新函数,可能并不那么昂贵:)
-
好地方,但我还能使用
e.preventDefault吗? -
是的,你会的 :) 这能回答你的问题吗?我可以给出完整的答案。
标签: javascript reactjs