反应函数状态未定义 no-undef

时间:2021-01-08 04:06:26

标签: javascript reactjs

我为这样的按钮创建了这个函数 startStop 来启动和暂停计时器。错误是“Line 108:22: 'sessionLength' is not defined no-undef”(第 108 行是此代码块中的最后一个“this.setState()”)它与绑定有什么关系吗?怎么了?

import React, { Component } from 'react';
import './App.css';

class App extends Component {
  state = {
    breakLength: 5,
    sessionLength: 25,
    timerState: "paused",
  }

  constructor(props) {
    super(props)
    this.startStop = this.startStop.bind(this)
  }

startStop() { 

    if (this.state.timerState === "paused") {
      this.setState({
        timerState: setInterval(() => decrement(), 1000)
      }, function () {console.log(this.state.timerState)})

    }
    
    else if (this.state.timerState !== "paused") {
      console.log(this.state.timerState)
      clearInterval(this.state.timerState)
      this.setState({
        timerState: "paused"
      }, function () {console.log(this.state.timerState)})
    }

    this.setState({
      sessionLength: sessionLength - remaining
    }, function () {console.log(this.state.sessionLength)})

  }

2 个答案:

答案 0 :(得分:1)

sessionLengththis.state 的成员,因此要访问它,您需要使用 this.state.sessionLength

    this.setState({
      sessionLength: this.state.sessionLength - remaining
    }

答案 1 :(得分:0)

我认为你应该在构造函数

中声明state

你试试:

    constructor(props) {
     super(props)
     this.state = {
        breakLength: 5,
        sessionLength: 25,
        timerState: "paused",
     }
     this.startStop = this.startStop.bind(this)
    }
相关问题