鉴于this.handler.bind(this)
可以替换为::this.handler
,如何使用this.handler.bind(this, 1)
替换::
?
我发现这在我想要附加处理程序来响应组件的情况下很有用。 E.g:
handler(x) {
this.setState({counter: x})
}
<a onClick={this.handler.bind(this, 5)}>increment by 5</a>
我知道我可以使用_.curry
(lodash),但在代码可读性方面它几乎相同:
<a onClick={_.curry(::this.handler, 5)}>increment by 5</a>
答案 0 :(得分:3)
ES next draft for the bind operator不具备部分应用功能,因为它是目前推出的。只需继续使用bind
(this.handler.bind(this, 5)
或简单的箭头函数e => this.handler(5, e)
。