我为这样的按钮创建了这个函数 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)})
}
答案 0 :(得分:1)
sessionLength
是 this.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)
}