zoukankan      html  css  js  c++  java
  • React篇-报错信息:warning: Can't call setState (or forceUpdate) on an unmounted component.

    报错信息是:

    Warning: Can't call setState (or forceUpdate) on an unmounted component. This is a no-op, but it indicates a memory leak in your application. To fix, cancel all subscriptions and asynchronous tasks in the componentWillUnmount method.

     

     

     

    项目中tab切换,内容封装成来一个子组件,在跳转到别的路由页面,然后再返回该页面点击tab切换的时候报上述错误,找了很久的原因,目前得到的分析应该是,在路由跳转过来的时候子组件还未加载到,此时点击切换tab栏(这里需要setState),就会报上述的错误,解决办法如下:

     

    设置变量 let isMounted = false

     

    然后在componentDidMount周期设置:

    componentDidMount(){
    isMounted = true;
    }
      
    在componentWillUnmount周期设置:
    componentWillUnmount(){
    isMounted = false
    }

    组件render这里判断isMounted的值:
    {
                            isMounted && this.state.activeIndex === 1 && <div className="tabC01">
                                                                <FTab tabCon={'tabCon01'}/>
                                                            </div>
    }

     

     

     

     

     

     

  • 相关阅读:
    DNN SEO专题 (收集)
    DataTable或者DataSet匯出Excel
    用C#制作PDF文件全攻略(转)
    BlogEngine资料收集
    DNN架构解析(收集)
    Community Server:快速找到需要修改的文件[技巧]
    通用的分页存储过程
    DataTable/DataSet汇出Excel
    百试不爽的30条职场经验(转)
    等宽字体
  • 原文地址:https://www.cnblogs.com/keleyz/p/9509634.html
Copyright © 2011-2022 走看看