Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Flutter initState()返回'_debugLifecycleState == _StateLifecycle.created':不为真

Flutter initState()返回'_debugLifecycleState == _StateLifecycle.created':不为真
EN

Stack Overflow用户
提问于 2020-12-07 10:48:58
回答 2查看 493关注 0票数 0

尝试调用initState()时,Flutter返回错误'_debugLifecycleState == _StateLifecycle.created': is not true.

这是我的initState()函数。我已经确保它不在这个站点上的另一个类似问题中提到的build()函数中。

代码语言:javascript
运行
AI代码解释
复制
@override
  void initState() {
    super.initState();

    dataRead = false;

    todayTask.clear();
    tomorrowTask.clear();
    upcomingTask.clear();

    tasks().then((data) {
      setState(() {

        for (int i =0; i< data.length; i++){
          if (taskDay(DateTime.parse(data[i].datetime)) == 0) todayTask.add(data[i]);
          else if (taskDay(DateTime.parse(data[i].datetime)) == 1) tomorrowTask.add(data[i]);
          else upcomingTask.add(data[i]);
        }

        dataRead = true;

      });
    });

    _tabController = TabController(vsync: this, length: 3);
  }

首次运行initState()时未出现错误。它只有在我显式调用它时才会出现。

颤动运行的结果--详细

代码语言:javascript
运行
AI代码解释
复制
[ +166 ms] E/flutter (30434): [ERROR:flutter/lib/ui/ui_dart_state.cc(166)] Unhandled Exception: 'package:flutter/src/widgets/framework.dart': Failed assertion: line 1113 pos 12: '_debugLifecycleState ==
_StateLifecycle.created': is not true.
[   +2 ms] E/flutter (30434): #0      _AssertionError._doThrowNew (dart:core-patch/errors_patch.dart:40:39)
[   +1 ms] E/flutter (30434): #1      _AssertionError._throwNew (dart:core-patch/errors_patch.dart:36:5)
[   +1 ms] E/flutter (30434): #2      State.initState (package:flutter/src/widgets/framework.dart:1113:12)
[   +1 ms] E/flutter (30434): #3      _TodoBodyState.initState (package:dyry/todobody.dart:70:11)
[        ] E/flutter (30434): #4      _TodoBodyState.build.<anonymous closure>.<anonymous closure> (package:dyry/todobody.dart:162:75)
[        ] E/flutter (30434): #5      _AddTodoState.build.<anonymous closure> (package:dyry/addtodo.dart:321:36)
[        ] E/flutter (30434): <asynchronous suspension>
[        ] E/flutter (30434): #6      _AddTodoState.build.<anonymous closure> (package:dyry/addtodo.dart)
[        ] E/flutter (30434): #7      _InkResponseState._handleTap (package:flutter/src/material/ink_well.dart:953:19)
[        ] E/flutter (30434): #8      _InkResponseState.build.<anonymous closure> (package:flutter/src/material/ink_well.dart:1059:38)
[        ] E/flutter (30434): #9      GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:182:24)
[        ] E/flutter (30434): #10     TapGestureRecognizer.handleTapUp (package:flutter/src/gestures/tap.dart:522:11)
[        ] E/flutter (30434): #11     BaseTapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:282:5)
[   +1 ms] E/flutter (30434): #12     BaseTapGestureRecognizer.acceptGesture (package:flutter/src/gestures/tap.dart:254:7)
[   +1 ms] E/flutter (30434): #13     GestureArenaManager.sweep (package:flutter/src/gestures/arena.dart:156:27)
[   +1 ms] E/flutter (30434): #14     GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:222:20)
[   +2 ms] E/flutter (30434): #15     GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:198:22)
[   +1 ms] E/flutter (30434): #16     GestureBinding._handlePointerEvent (package:flutter/src/gestures/binding.dart:156:7)
[   +1 ms] E/flutter (30434): #17     GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:102:7)
[   +1 ms] E/flutter (30434): #18     GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:86:7)
[   +1 ms] E/flutter (30434): #19     _rootRunUnary (dart:async/zone.dart:1206:13)
[   +1 ms] E/flutter (30434): #20     _CustomZone.runUnary (dart:async/zone.dart:1100:19)
[   +1 ms] E/flutter (30434): #21     _CustomZone.runUnaryGuarded (dart:async/zone.dart:1005:7)
[   +1 ms] E/flutter (30434): #22     _invoke1 (dart:ui/hooks.dart:281:10)
[   +1 ms] E/flutter (30434): #23     _dispatchPointerDataPacket (dart:ui/hooks.dart:190:5)
[   +2 ms] E/flutter (30434):
[  +92 ms] D/InputMethodManager(30434): HSIFW - flag : 0 Pid : 30434
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-03-27 16:16:39

您应该创建另一个函数并在initState中调用该函数,而不是使用FutureDelayed。我也有同样的问题,我只需要提取函数就可以解决这个问题。下面是我的代码:

代码语言:javascript
运行
AI代码解释
复制
    @override
  void initState() {
    setState(() {
      _isLoading = true;
    });
    getInitData();

    super.initState();
  }

  Future<void> getInitData() async {
    await Provider.of<PassCardList>(context, listen: false).getCard();
    setState(() {
      _isLoading = false;
    });
  }
票数 1
EN

Stack Overflow用户

发布于 2020-12-07 10:58:13

我认为setState是在创建小部件之前使用的。我会推迟setState的发布。

代码语言:javascript
运行
AI代码解释
复制
    @override
      void initState() {
        super.initState();
    
        dataRead = false;
    
        todayTask.clear();
        tomorrowTask.clear();
        upcomingTask.clear();

       Future.delayed(const Duration(milliseconds: 200), () {
    
        tasks().then((data) {
          setState(() {
    
            for (int i =0; i< data.length; i++){
              if (taskDay(DateTime.parse(data[i].datetime)) == 0) todayTask.add(data[i]);
              else if (taskDay(DateTime.parse(data[i].datetime)) == 1) tomorrowTask.add(data[i]);
              else upcomingTask.add(data[i]);
            }
    
            dataRead = true;
    
          });
        });
});
    
        _tabController = TabController(vsync: this, length: 3);
      }
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65180288

复制
相关文章
StatefulWidget与State
首先来看下StatefulWidget,它是一个抽象类,当然它十分的简单。它和StatelessWidget一样它只有两个方法,都有一个createElement的方法,但是和StatelessWidget不同的是,StatelessWidget可以直接通过build方法来构建Widget,但是StatefulWidget没有build方法,所以它只能使用State的build来构建Widget。
flyou
2020/05/29
1.5K0
Flutter 小技巧之优化你使用的 BuildContext
Flutter 里的 BuildContext 相信大家都不会陌生,虽然它叫 Context,但是它实际是 Element 的抽象对象,而在 Flutter 里,它主要来自于 ComponentElement 。
GSYTech
2022/07/24
1.3K0
flutter系列之:用来管理复杂状态的State详解
Flutter的基础是widget,根据是否需要跟用户进行交互,widget则可以分为StatelessWidget和StatefulWidget。StatelessWidget只能根据传入的状态进行简单的初始化widget,如果要实现跟用户交互这种复杂的功能,则需要用到StatefulWidget。
程序那些事
2022/08/22
4870
Flutter | 一文搞懂 BuildContext
[BuildContext] objects are actually [Element] objects. The [BuildContext] ,interface is used to discourage direct manipulation of [Element] objects.
345
2022/02/11
5730
flutter 返回键监听
在客户端,MethodChannel(API)允许发送与方法调用相对应的消息。 在平台方 面,Android(API)上的MethodChannel和 iOS(API)上的 FlutterMethodChannel启用接收方法调用并发回结果。
徐建国
2021/08/02
4.1K1
使用Flutter开发微信小程序:构建一个简单的天气预报小程序
微信小程序是一种快速、高效的开发方式,Flutter则是一款强大的跨平台开发框架。结合二者,可以轻松地开发出功能丰富、用户体验良好的微信小程序。
Onegun
2023/07/04
5.8K2
使用Flutter开发微信小程序:构建一个简单的天气预报小程序
Flutter - 检查 Internet 连接示例[Flutter专题14]
有时,您可能想要检查运行您的应用程序的设备的互联网连接。如果应用程序是使用 Flutter 开发的,您可以阅读本教程中的示例。
徐建国
2021/12/07
2.2K0
Vue源码解读之InitState
看上面代码,先声明了一个_watchers的空数组;然后依次判断传递进来的options是否包含系列参数;依次执行initProps、initMethods、initData、initComputed、initWatch。
yyzzabc123
2022/09/28
3100
【Flutter】Flutter 页面生命周期 ( 初始化期 | createState | initState | 更新期 | build | 销毁期 | dispose)
Flutter 页面生命周期就是 Flutter 页面组件 Widget 的生命周期 ;
韩曙亮
2023/03/28
4.7K0
【Flutter】Flutter 页面生命周期 ( 初始化期 | createState | initState | 更新期 | build | 销毁期 | dispose)
Flutter iOS 真机测试 -- 值得收藏
持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第3天,点击查看活动详情
Jimmy_is_jimmy
2022/09/20
3.6K1
Flutter iOS 真机测试 -- 值得收藏
Flutter框架分析(三)-- Widget,Element和RenderObject
前面两篇Flutter框架分析的文章介绍了渲染流水线,window和框架的初始化。这篇文章继续来理一下对Flutter app开发者来说比较重要的Widget,Element和RenderObject体系。Flutter的理念是一切都是Widget(Everythin is Widget)。开发者在开发Flutter app的时候主要都是在写很多Widget。那么这三者之间是什么关系?它们是怎么工作的呢?让我们来一探究竟。
HowHardCanItBe
2020/09/15
1.4K0
Flutter性能调优、复杂业务保证Flutter的高性能高流畅
高性能高流畅度一直是Flutter团队宣传的一大亮点,也是当初选择Flutter的重要因素之一,但是随着复杂业务的应用落地,通过Flutter页面和原生页面滑动流畅度对比,我们开始产生怀疑,因为部分Flutter页面流畅度明显低于Native,是Flutter的宣传言过其实还是我们开发人员使用姿势有问题,今天我们就来具体分析下。
码农笔录
2020/08/24
1.3K0
Flutter性能调优、复杂业务保证Flutter的高性能高流畅
Flutter启动流程初探
最近开始研究Flutter了,俗话说工欲善其事必先利其器,在正式运用Flutter之前肯定要先了解了解它的工作机制,于是开始了Flutter以及Dart的源码学习之旅,这次就简单的分析一下Flutter的启动流程,作为记录~
猿哥
2019/03/13
1.2K0
Flutter免费iOS真机调试 AndroidStudio iPhone真机运行教程
可是,Android开发的我并不了解如何打包到iPhone手机上运行。网上搜了一遍,同事问了一遍,都说要交99刀成为苹果开发者才能真机运行。我……
毛大姑娘
2020/09/10
7.1K0
Flutter免费iOS真机调试 AndroidStudio iPhone真机运行教程
Flutter布局基础——页面导航和返回
说到导航,最常见就是类似于iOS中导航控制器的push和pop效果,同样Flutter中也有类似的效果,使用的就是Navigator组件。
莫空9081
2021/08/02
1.7K0
Flutter 中路由返回的多种方式
当页面中跳转顺序是A页面-B页面-C页面,如果在B页面中使用上面这个命令跳转到C页面,在C页面返回时会直接跳转到A页面。如果在A页面也是使用的此命令跳转到B页面,那么在C页面中返回时会返回A页面的上一级页面。
越陌度阡
2020/12/29
2.5K0
Flutter State生命周期
前面说过了StatefullWidget,这节我们来说说State的生命周期,这在flutter开发中是非常重要的。
用户1974410
2022/09/20
8700
Flutter State生命周期
Flutter中路由返回的多种方式
当页面中跳转顺序是A页面-B页面-C页面,如果在B页面中使用上面这个命令跳转到C页面,在C页面返回时会直接跳转到A页面。如果在A页面也是使用的此命令跳转到B页面,那么在C页面中返回时会返回A页面的上一级页面。
越陌度阡
2022/05/06
1.4K0
Flutter中路由返回的多种方式
【Flutter】Image 组件 ( 加载网络图片 | 加载静态图片 | 加载本地图片 | path_provider 插件 )
参考 【Flutter】Image 组件 ( Image 组件简介 | Image 构造函数 | Image.network 构造函数 | Image.asset 构造函数 ) 三、Image.network 构造函数
韩曙亮
2023/03/29
2.1K0
【Flutter】Image 组件 ( 加载网络图片 | 加载静态图片 | 加载本地图片 | path_provider 插件 )
点击加载更多

相似问题

Flutter initState()返回_debugLifecycleState错误

466

Flutter失败断言:第1340行pos 12:'_debugLifecycleState == _StateLifecycle.ready':不是真

13

flutter initState() vs build()?

24

'verificationCompleted != null':在Flutter Firebase身份验证中不为真

16

Flutter initState等待异步功能完成

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档