_this3.state.method不是函数

时间:2018-11-13 05:11:11

标签: javascript reactjs binding es6-class

我有一个.js文件,

我的班级组成部分:

[...]
constructor(props, context) {
    [...]
    this.method1 = this.method1.bind(this);
}

anotherMethod() {
    [...]
    this.state.method1();
}

method1() {
    //Do something
}

我收到此错误:_this3.state.method1不是函数。我尝试遵循here中其他一些已知的解决方案。

我有几个问题:

  1. 根本原因是什么?
  2. _this3是什么来源?

谢谢。

编辑:我找到了删除“状态”的解决方案。代替this.state.method1(),它应该是this.method1()。只是好奇,当我在上面绑定它时,为什么不需要“状态”?

1 个答案:

答案 0 :(得分:2)

因为method1不在state中,所以这是组件的自功能,除非method1中的state如下所示。

this.state = {method1:() =>{ /*Do something*/ }}

您可以阅读React个有关stateHandling Events的网站。