为了账号安全,请及时绑定邮箱和手机立即绑定

在本机反应中重新启动倒数计时器

在本机反应中重新启动倒数计时器

小怪兽爱吃肉 2021-10-07 10:52:27
在倒数计时器上工作,我希望能够在按下按钮时重新开始倒计时,但是,我认为该按钮不起作用,因为我没有收到任何反馈。有人可以指出我正确的方向吗?下面是我试图实现的精简示例代码。export default class Example extends Component {  constructor(props) {      super(props);      this.state = {          timer: 10,          timesup: false,          timing: true,          showWelcome: true,      };  }  componentDidMount() {      this.clockCall = setInterval(() => {          this.decrementClock();      }, 1000);  }  startTimer = () => {      this.setState({          timing: true,          timer: 30,          showWelcome: false      })  }  decrementClock = () => {      this.setState((prevstate) => ({          timer: prevstate.timer - 1      }), () => {          if (this.state.timer === 0) {              clearInterval(this.clockCall)              this.setState({                  timesup: true,                  timing: false,                  showWelcome: false,              })          }      })  }  componentWillUnmount() {      clearInterval(this.clockCall);  }  render() {      return (          <View style={{ flex: 1, justifyContent: 'center', alignItems: 'center' }}>  {this.state.timesup && (      <Text style={{fontSize: 18, color: '#000'}}>      Time up      </Text>)}  {this.state.timing && (      <Text style={{fontSize: 18, color: '#000'}}>      {this.state.timer}      </Text>)}        {this.state.showWelcome && (          <Text style={{ fontSize: 20 }}>Welcome</Text>        )}        <Button Onpress={this.startTimer.bind(this)} title='play' />      </View>      )  }}
查看完整描述

1 回答

?
慕村225694

TA贡献1880条经验 获得超4个赞

我相信您正在寻找 onPress,而不是 Onpress。此外,如果您正在使用:

startTimer = () => ...

使用:

this.startTimer.bind

没有效果,因为该方法已经通过箭头函数绑定到this。然后您可以简单地使用:

onPress={this.startTimer}


查看完整回答
反对 回复 2021-10-07
  • 1 回答
  • 0 关注
  • 140 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信