当前位置:首页 > 开发 > 行业应用 > 正文

【解决】React setState延迟delay导致数据更新不及时,代码无法正确执行

发表于: 2016-05-14   作者:qiaolevip   来源:转载   浏览:
摘要: 之前ReactsetState后在另一个函数调用state的值没有更新: //initstate.type='new'; activeMenu(type){ //type=top if(type==this.state.type)return; this.loadList(type); } loadList(type){ this.setState({ items:[],

之前React setState后在另一个函数调用state的值没有更新:

 

// init state.type = 'new';

activeMenu(type) {
  // type = top
  if (type == this.state.type) return;
  this.loadList(type);
}

loadList(type) {
  this.setState({
    items: [],
    type: type
  });

  .........
  // type  is top, but this.state.type still is new
}

 

 

改进后的setState是这样的:

 

// 使用setState的回调函数即可解决  
activeMenu(type) {
    if (type == this.state.type) return;
    this.setState({
      items: [],
      page: 1,
      type: type,
      isLoading: false,
      isLoadedFinished: false
    }, function() {
      this.loadList();
    });
  }

loadList() {
  // 这样我们就可以愉快及时的使用 state里面的值
  。。。
  。。。
}

 

 

 

有疑问或技术交流,扫描公众号一起讨论学习。

更多React在线学习访问:http://each.sinaapp.com/react/index.html

【解决】React setState延迟delay导致数据更新不及时,代码无法正确执行_第1张图片

【解决】React setState延迟delay导致数据更新不及时,代码无法正确执行

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
这几天在学习过程中出现了一个数据无法正确聚合的问题。花了很多时间去分析MDX代码都没有发现什么问
Angular数据更新不及时问题探讨 前言 在修复控制角标正确变化过程中,发觉前端代码组织层次出现了严
DUMP TRANSACTION zmdswj1 WITH NO_LOG dump transaction zmdswj1 with no_log 错误源:.Net SqlCli
转载自:http://www.xp85.com/xitong/zt/3045.html 上班后,照例从SVN上更新了最新代码,通过MyEcli
最近看了许多介绍Group delay function的论文,文章中大篇幅提到Group delay,group delay of digit
摘自网上的一段解决办法。 原文:http://blog.163.com/me_wxx/blog/static/13519139120105152638477
原文:JQuery EasyUI弹出对话框解决Asp.net服务器控件无法执行后台代码的方法 jquery-easyui是一个
jquery-easyui是一个基于jquery的图形界面插件,利用easyui可以创建很多好看的网页界面效果,easyui
Android SDK Manager无法自动更新我们都知道是Google被墙的原因,连接不是很稳定,最笨的方法就是找
打开Android SDK Manager软件,选择“Tools—>Options”,设置如下: 注:强迫使用HTTP,而不是H
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号