我是否需要使用TypeScript + React将事件处理程序绑定到`this`?

时间:2017-05-16 00:18:12

标签: javascript reactjs typescript

我有一个带有简单按钮处理程序方法的组件。如果我没有将onClick处理程序绑定到构造函数中的this(或onClick本身内联),那么我会收到错误,因为{{1方法不是我的组件的状态是......

的实例

我了解handleAdd的工作原理,但是有一种解决方法可以避免使用TypeScript + React在整个地方使用bind吗?

bind

2 个答案:

答案 0 :(得分:8)

  

但有没有一种解决方法可以避免使用TypeScript + React在整个地方使用绑定?

是。使用箭头功能:

handleAdd = (e: any) => {
    this.setState({
        items: [...this.state.items, { name: "foo" }]
    });
}

更多

答案 1 :(得分:0)

箭头函数适用于匿名函数,但会降低类的可扩展性(如果要扩展该类并重新定义函数但使用super)。

要调用函数作为类的成员,简单的方法是使用bind。

最糟糕的是使用绑定而不是使用匿名函数吗?