Reactjs不断抛出错误“TypeError:this.goActive不是函数”

时间:2017-12-28 10:48:02

标签: javascript reactjs

我有一个用于检测用户是否处于活动状态的函数。但是一旦我移动鼠标就会从_userManager.FindBySubjectIdAsync引发错误TypeError: this.goActive is not a function但如果我自己运行resetTimer(e),我会在控制台中获得“oy”。 这是我的代码:

resetTimer(e)

2 个答案:

答案 0 :(得分:3)

您需要将thisresetTimer的上下文绑定到您的组件。 阅读官方React文档https://reactjs.org/docs/handling-events.html

中的更多内容

答案 1 :(得分:1)

resetTimer的范围是在回调中调用它的控件,在你的情况下是窗口。

您需要将函数绑定到正确的范围:

this.resetTimer = this.resetTimer.bind(this);

在类构造函数中:

class App extends Component {
  constructor(...args) {
    super(...args);
    this.resetTimer = this.resetTimer.bind(this);
    // and all the other class methods
  }

  // here go method declarations
}

或者您可以使用箭头语法(在ES6中),因此重置计时器变为:

class App extends Component {
  resetTimer = (e) => {
    // code 
  }

  // and other method declarations
}