[Flutter]有的时候调用setState(() {})报错?

这篇具有很好参考价值的文章主要介绍了[Flutter]有的时候调用setState(() {})报错?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  先看FlutterSDK的原生类State中有一个变量mounted。

abstract class State<T extends StatefulWidget> with Diagnosticable {
  /// mounted的作用是,此State对象当前是否在树中。
  /// 在创建State对象之后,在调用initState之前,框架通过将State对象与BuildContext的关联来 "mounts" 这个State对象。State对象保持挂载状态,直到框架调用dispose,在此之后,框架将永远不会要求State对象再次构建。
  /// 除非mounted为true,否则调用setState是错误的。
  bool get mounted => _element != null;
}


  因此,在State<T extends StatefulWidget>的子类对象中,我们可以在封装了一个刷新界面的方法。特别是在网络数据请求等异步任务的回调中调用这个方法。文章来源地址https://www.toymoban.com/news/detail-656763.html

class _HomePageState extends State<HomePage>
  void _updateUI() {
    if (mounted) {
      setState(() {});
    }
  }

  void _requestData() {
    RequestUtil.get(
      urlStr: 'urlStr',
      param: null,
      showLoading: false,
    ).then((value) {
      // 注: 回调可能在State对象被dispose之后才执行。
      if (value && value.data is List) {
        _dataList = value.data;
      } else {
        _dataList = [];
      }
      _updateUI();
    });
  }
}

到了这里,关于[Flutter]有的时候调用setState(() {})报错?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • “IT小百科”之“电脑开机密码忘记了怎么办”

    随着信息化的发展,每个人的安全意识也在逐步提高,很多人为了电脑数据的安全或者出于保护自己隐私种种原因,都会对自己的电脑设置开机密码,而且也会不定期的对密码进行修改,为了避免弱口令的出现会将密码设置的较为复杂。这时候经常有人发现再登陆输入密码的

    2024年02月09日
    浏览(52)
  • IT知识百科:三大云计算模型IAAS、PAAS、SAAS

    云计算已经成为现代IT架构的核心组成部分,而云服务模型是构建和交付云计算服务的关键概念。在云服务模型中,IAAS、PAAS和SAAS是最常见的三种模型。 本文将深入介绍这三种模型,探讨它们的特点、优势以及在不同场景下的适用性。 什么是IAAS IAAS,即基础设施即服务,提供

    2024年02月07日
    浏览(42)
  • SpringBoot有的时候引入依赖为什么不用加版本号

    有的小伙伴做项目时候,引入新的包时候,会有疑问,为什么有些依赖需要加版本号,有些依赖不需要加版本号?不加版本号的依赖,版本号都写在哪里了呢? 内置的依赖可以不加版本号 这是因为SpringBoot内置了很多依赖,引入这些内置的依赖时不需要加版本号,相反,如果

    2024年01月19日
    浏览(68)
  • C# 添加现有的窗体的时候,为何窗体的控件不显示了?

    有的项目中一些功能是可以复用的,将原始项目中的窗体文件添加到新项目时,发现有一些问题。添加完之后,打开的窗体发现没有显示任何控件,窗体的大小还变小了? 将Form1.cs Form1.resx Form1.Designer 三个文件直接复制到新项目的目录下,然后直接在新项目上选择添加现有项

    2024年02月10日
    浏览(45)
  • IT小百科之“手把手教你如何实现秒破加密的Office办公文档”

    小伙伴们,有时候辛辛苦苦从网上下载的office文档,刚要开心的阅读的时候,打开才发现office文档被加密了,是不是有种欲哭无泪的感觉啊?还有的时候自己把文件加密了,结果忘记了密码,那更是欲哭无泪! 遇到这种尴尬的事情,有没有什么神奇的方法可以快速找回密码或

    2024年02月13日
    浏览(48)
  • react中使用shouldComponentUpdate生命周期函数调用setState引起的无限循环的错误

    在 React 组件中,当在 componentWillUpdate 或 componentDidUpdate 生命周期方法中调用 setState 时,会触发无限循环,导致超过最大更新深度。 在React组件中 ,我们使用componentWillUpdate 或 componentDidUpdate 生命周期方法中调用 setState 方法,但是调用seState会导致组件重新渲染 ,那么这个生命

    2024年02月12日
    浏览(40)
  • xxl-job定时任务配置应用以及添加到自己已有的springboot项目中实现动态API调用

    XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。 本篇文章主要是对xuxueli的xxl-job做一个简单的配置,以及将其添加到自己已有的项目中进行api调用。 一、xxl-job安装 1、首先

    2024年02月03日
    浏览(40)
  • [管理与领导-37]:IT基层管理者 - 人的管理 - 上次让对方赢是什么时候?赢了事情,输了人心;争得理,输了情。

    好的管理者要懂得谦逊、懂得容人、懂得给别人留情面。 很多管理者赢了事情,输了人心;争得理,输了情。 管理者的\\\"中庸之道\\\"可以理解为在管理和领导团队时保持平衡和适度的原则。中庸之道的核心思想是避免极端、求取平衡,能够在不同的情况下采取合适的方式。以下

    2024年02月12日
    浏览(69)
  • springCloud整合Zookeeper的时候调用找不到服务

    首先,我们在注册中心注册了这个服务: 然后我们使用RestTemplate 调用的时候发现失败了:找不到这个服务: 找了很多资料发现这个必须要加上负载才行 这样就可以正常的访问了

    2024年02月11日
    浏览(37)
  • flutter3使用dio库发送FormData数据格式时候的坑,和get库冲突解决办法

    问题1:当你使用 FormData.from(Flutter3直接不能用) 的时候,可能会提示没有这个方法,或者使用 FormData.fromMap(flutter3的dio支持) 的时候也提示没有,这时候可能就是和get库里面的Formdata冲突了 问题1:The method \\\'fromMap\\\' isn\\\'t defined for the type \\\'FormData\\\'. (Documentation)  Try correcting the name to

    2024年01月19日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包