无法在设置状态的未安装组件上调用 setState(或 forceUpdate) [英] Can't call setState (or forceUpdate) on an unmounted component on set state

查看:80
本文介绍了无法在设置状态的未安装组件上调用 setState(或 forceUpdate)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我们如何在 componentDidMount() 中使用 setState 或者我们如何改变状态值?.使用以下代码时出现错误

how we can use setState in componentDidMount() or how we can change state value?. While using below code getting error

无法在未挂载的组件上调用 setState(或 forceUpdate)

Can't call setState (or forceUpdate) on an unmounted component

componentDidMount(){
  this.interval = setInterval(() => {
    if(this.state.rmSec==0){
      this.setState({
        rmSec:59,
        rmMin:this.state.rmMin-this.state.minus,
      })
    }else{
      this.setState({
        rmSec:this.state.rmSec-this.state.minus
      })
    }

    if(this.state.rmMin==0){
      this.setState({
        rmSec:0,
        rmMin:0,
      })

    }


  }, 1000);
}

推荐答案

卸载时清除间隔解决的问题

Issue solved by clearing interval on unmount

componentWillUnmount () {
    this.interval && clearInterval(this.interval);
    this.interval = false;
}

这篇关于无法在设置状态的未安装组件上调用 setState(或 forceUpdate)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆