【发布时间】:2017-09-26 16:24:12
【问题描述】:
我在一个包含以下内容的 React 组件中有一个 onClick 道具:
onClick={_.bind(this.callMe, this, argToPass)}
请记住,这是在使用 React.createClass 的 React 组件中,因此组件函数应该绑定到它的上下文。
不幸的是,当我尝试通过执行以下操作来绑定它时:
onClick={this.callMe(argToPass)}
它打破了我的一项测试。
我不想绑定它,因为它像这样作为道具传递:
onClick={this.callMe(argToPass).bind(this)}
b/c 性能问题。
什么是原版 javascript 等价物:
_.bind(this.callMe, this, argToPass)
这将允许函数正确绑定。
谢谢!
【问题讨论】:
-
老兄。谁在没有解释的情况下投反对票?这是合法的,在一个出色的团队的生产中,并且是一个真正的问题。
-
我不想通过:
this.callMe(argToPass).bind(this)b/c 的性能问题来绑定它。 -- 你的意思是因为那不正确?因为除非this.callMe()返回一个函数,否则只会抛出一个错误,但即使它发生了,你仍然会有一个错误。 注意我没有投反对票,我只是在评论。 -
存在性能问题,我不想使用该符号将函数绑定到该组件的上下文。参考这里:daveceddia.com/avoid-bind-when-passing-props
标签: javascript reactjs lodash bind