我是靠谱客的博主 时尚御姐,最近开发中收集的这篇文章主要介绍【解决】React setState延迟delay导致数据更新不及时,代码无法正确执行,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

之前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导致数据更新不及时,代码无法正确执行的全部内容,希望文章能够帮你解决【解决】React setState延迟delay导致数据更新不及时,代码无法正确执行所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(60)

评论列表共有 0 条评论

立即
投稿
返回
顶部