javascript - React 函数在 componentDidMount 上工作但不在 onClick 上工作

标签 javascript reactjs onclick

如果我改变我的代码

  componentDidMount(){
    let interval = setInterval(this.timer, 1000);
    this.setState({ secondsRemaining: this.state.secondsRemaining })
    this.setState({ interval: interval });
  };

为此:

  startTime(){
    let interval = setInterval(this.timer, 1000);
    this.setState({ secondsRemaining: this.state.secondsRemaining })
    this.setState({ interval: interval });
  };

<p><input type="submit" value="Start Timer!" onClick={this.startTimer}/></p>

我会收到一条错误消息,提示 Cannot read property 'timer' of null pointing to the let interval line

为什么我会得到这个? (绑定(bind)错误?)

我认为下一部分会解决这个问题:

constructor(props) {
    super(props);
    this.state = {
      secondsRemaining: 10
    };
    this.timer = this.timer.bind(this);
  }

也许有些东西没有安装?我无法弄清楚为什么它在 Mount 上有效,但在 onClick 上无效

最佳答案

您可能需要将 this.timer = this.timer.bind(this); 更改为 this.startTimer = this.startTimer.bind(this);你的构造函数。

关于javascript - React 函数在 componentDidMount 上工作但不在 onClick 上工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40763845/

相关文章:

javascript - 在 JS 中获取元元素属性值的最佳方法是什么?

reactjs - SCSS - 可以使用react或chrome进行调试吗?

javascript - 使用 Create React App 的静态 HTML 登录页面

javascript - 如何从 React.js 中的另一个文件实际启动一个函数

javascript - 如何使用 JavaScript 将按钮的 onclick 更改为另一个函数?

javascript - React Native JS 问题

javascript - 如何在自定义元素中提供后备 CSS 值?

javascript - 为什么我的 JavaScript 代码收到“"No ' Access-Control-Allow-Origin' header is present on the requested resources”错误,而 Postman 却没有?

javascript - 使用变量作为键和值创建对象

javascript - classList.toggle 仅部分有效