【问题标题】:Flutter initState() returns a _debugLifecycleState errorFlutter initState() 返回 _debugLifecycleState 错误
【发布时间】:2019-04-16 06:10:09
【问题描述】:

我已经构建 Flutter 应用程序有一段时间了,一切似乎都运行良好,但今天我尝试在 statefulWidget 中调用 initState(),以便我可以进行 API 调用,但它返回一个我不熟悉的错误

我的代码:

class Home extends StatefulWidget {

  final String header;

  Home({Key key, this.header}): super(key: key);

  @override
  _HomeState createState() => _HomeState();
}

class _HomeState extends State<Home>{
  @override
  Widget build(BuildContext context) {

    Top top;
    bool _loading = true;

    fetchData() async {
      setState(() {
        _loading = true;
      });
      //Fetch top Animes
      var res = await http.get(Constants.topAnimes);
      var decodedJson = jsonDecode(res.body);
      print(decodedJson['top']);
      top = Top.fromJson(decodedJson['top']);
      print(top.toJson());


      setState(() {
        _loading = false;
      });
    }

    @override
    void initState() {
      super.initState();
      fetchData();
    }

    return Container();
  }
}

错误:

I/flutter (24395): ══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
I/View    (24395): Key down dispatch to io.flutter.view.FlutterView{8dd5ba8 VFE...... .F...... 0,0-720,1200}, event = KeyEvent { action=ACTION_DOWN, keyCode=KEYCODE_F11, scanCode=87, metaState=0, flags=0x8, repeatCount=11805, eventTime=9200503, downTime=8597691, deviceId=2, source=0x101 }
I/flutter (24395): The following assertion was thrown building Home(dirty, state: _HomeState#5567f):
I/flutter (24395): 'package:flutter/src/widgets/framework.dart': Failed assertion: line 1008 pos 12:
I/flutter (24395): '_debugLifecycleState == _StateLifecycle.created': is not true.
I/View    (24395): Key down dispatch to io.flutter.view.FlutterView{8dd5ba8 VFE...... .F...... 0,0-720,1200}, event = KeyEvent { action=ACTION_DOWN, keyCode=KEYCODE_F11, scanCode=87, metaState=0, flags=0x8, repeatCount=11806, eventTime=9200553, downTime=8597691, deviceId=2, source=0x101 }
I/flutter (24395): 
I/flutter (24395): Either the assertion indicates an error in the framework itself, or we should provide substantially
I/flutter (24395): more information in this error message to help you determine and fix the underlying cause.
I/flutter (24395): In either case, please report this assertion by filing a bug on GitHub:
I/flutter (24395):   https://github.com/flutter/flutter/issues/new?template=BUG.md
I/flutter (24395): 
I/flutter (24395): When the exception was thrown, this was the stack:
I/flutter (24395): #2      State.initState (package:flutter/src/widgets/framework.dart:1008:12)
I/flutter (24395): #3      _HomeState.build.initState (package:flutter_anime/screens/home.dart:66:13)
I/flutter (24395): #4      _HomeState.build (package:flutter_anime/screens/home.dart:70:14)
I/flutter (24395): #5      StatefulElement.build (package:flutter/src/widgets/framework.dart:3825:27)
I/flutter (24395): #6      ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3736:15)
I/flutter (24395): #7      Element.rebuild (package:flutter/src/widgets/framework.dart:3559:5)
I/flutter (24395): #8      ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3716:5)
I/flutter (24395): #9      StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:3864:11)
I/flutter (24395): #10     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3711:5)
I/flutter (24395): #11     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2956:14)
I/flutter (24395): #12     Element.updateChild (package:flutter/src/widgets/framework.dart:2759:12)
I/flutter (24395): #13     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4876:14)
I/flutter (24395): #14     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2956:14)
I/flutter (24395): #15     Element.updateChild (package:flutter/src/widgets/framework.dart:2759:12)
I/flutter (24395): #16     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3747:16)
I/flutter (24395): #17     Element.rebuild (package:flutter/src/widgets/framework.dart:3559:5)
I/flutter (24395): #18     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3716:5)
I/flutter (24395): #19     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3711:5)
I/flutter (24395): #20     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2956:14)
I/flutter (24395): #21     Element.updateChild (package:flutter/src/widgets/framework.dart:2759:12)
I/flutter (24395): #22     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4876:14)
I/flutter (24395): #23     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2956:14)
I/flutter (24395): #24     Element.updateChild (package:flutter/src/widgets/framework.dart:2759:12)
I/flutter (24395): #25     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4876:14)
I/flutter (24395): #26     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2956:14)
I/flutter (24395): #27     Element.updateChild (package:flutter/src/widgets/framework.dart:2759:12)
I/flutter (24395): #28     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4876:14)
I/flutter (24395): #29     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2956:14)
I/flutter (24395): #30     Element.updateChild (package:flutter/src/widgets/framework.dart:2759:12)
I/flutter (24395): #31     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4876:14)
I/flutter (24395): #32     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2956:14)
I/flutter (24395): #33     Element.updateChild (package:flutter/src/widgets/framework.dart:2759:12)
I/flutter (24395): #34     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3747:16)
I/flutter (24395): #35     Element.rebuild (package:flutter/src/widgets/framework.dart:3559:5)
I/flutter (24395): #36     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3716:5)
I/flutter (24395): #37     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:3864:11)
I/flutter (24395): #38     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3711:5)
I/flutter (24395): #39     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2956:14)
I/flutter (24395): #40     Element.updateChild (package:flutter/src/widgets/framework.dart:2759:12)
I/flutter (24395): #41     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3747:16)
I/flutter (24395): #42     Element.rebuild (package:flutter/src/widgets/framework.dart:3559:5)
I/flutter (24395): #43     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3716:5)
I/flutter (24395): #44     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3711:5)
I/flutter (24395): #45     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2956:14)
I/flutter (24395): #46     Element.updateChild (package:flutter/src/widgets/framework.dart:2759:12)
I/flutter (24395): #47     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3747:16)
I/flutter (24395): #48     Element.rebuild (package:flutter/src/widgets/framework.dart:3559:5)
I/flutter (24395): #49     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3716:5)
I/flutter (24395): #50     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:3864:11)
I/flutter (24395): #51     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3711:5)
I/flutter (24395): #52     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2956:14)
I/flutter (24395): #53     Element.updateChild (package:flutter/src/widgets/framework.dart:2759:12)
I/flutter (24395): #54     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4876:14)
I/flutter (24395): #55     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2956:14)
I/flutter (24395): #56     Element.updateChild (package:flutter/src/widgets/framework.dart:2759:12)
I/flutter (24395): #57     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3747:16)
I/flutter (24395): #58     Element.rebuild (package:flutter/src/widgets/framework.dart:3559:5)
I/flutter (24395): #59     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3716:5)
I/flutter (24395): #60     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3711:5)
I/flutter (24395): #61     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2956:14)
I/flutter (24395): #62     Element.updateChild (package:flutter/src/widgets/framework.dart:2759:12)
I/flutter (24395): #63     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4876:14)
I/View    (24395): Key down dispatch to io.flutter.view.FlutterView{8dd5ba8 VFE...... .F...... 0,0-720,1200}, event = KeyEvent { action=ACTION_DOWN, keyCode=KEYCODE_F11, scanCode=87, metaState=0, flags=0x8, repeatCount=11809, eventTime=9200704, downTime=8597691, deviceId=2, source=0x101 }
I/flutter (24395): #64     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2956:14)
I/flutter (24395): #65     Element.updateChild (package:flutter/src/widgets/framework.dart:2759:12)
I/flutter (24395): #66     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3747:16)
I/flutter (24395): #67     Element.rebuild (package:flutter/src/widgets/framework.dart:3559:5)
I/flutter (24395): #68     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3716:5)
I/flutter (24395): #69     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:3864:11)
I/flutter (24395): #70     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3711:5)
I/flutter (24395): #71     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2956:14)
I/flutter (24395): #72     Element.updateChild (package:flutter/src/widgets/framework.dart:2759:12)
I/flutter (24395): #73     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3747:16)
I/flutter (24395): #74     Element.rebuild (package:flutter/src/widgets/framework.dart:3559:5)
I/flutter (24395): #75     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3716:5)
I/flutter (24395): #76     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3711:5)
I/flutter (24395): #77     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2956:14)
I/flutter (24395): #78     Element.updateChild (package:flutter/src/widgets/framework.dart:2759:12)
I/flutter (24395): #79     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4876:14)
I/flutter (24395): #80     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2956:14)
I/flutter (24395): #81     Element.updateChild (package:flutter/src/widgets/framework.dart:2759:12)
I/flutter (24395): #82     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3747:16)
I/flutter (24395): #83     Element.rebuild (package:flutter/src/widgets/framework.dart:3559:5)
I/flutter (24395): #84     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3716:5)
I/flutter (24395): #85     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3711:5)
I/flutter (24395): #86     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2956:14)
I/flutter (24395): #87     Element.updateChild (package:flutter/src/widgets/framework.dart:2759:12)
I/flutter (24395): #88     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3747:16)
I/flutter (24395): #89     Element.rebuild (package:flutter/src/widgets/framework.dart:3559:5)
I/flutter (24395): #90     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3716:5)
I/flutter (24395): #91     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:3864:11)
I/flutter (24395): #92     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3711:5)
I/flutter (24395): #93     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2956:14)
I/flutter (24395): #94     Element.updateChild (package:flutter/src/widgets/framework.dart:2759:12)
I/flutter (24395): #95     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3747:16)
I/flutter (24395): #96     Element.rebuild (package:flutter/src/widgets/framework.dart:3559:5)
I/flutter (24395): #97     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3716:5)
I/flutter (24395): #98     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:3864:11)
I/flutter (24395): #99     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3711:5)
I/flutter (24395): #100    Element.inflateWidget (package:flutter/src/widgets/framework.dart:2956:14)
I/flutter (24395): #101    MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4982:32)
I/flutter (24395): #102    Element.inflateWidget (package:flutter/src/widgets/framework.dart:2956:14)
I/flutter (24395): #103    Element.updateChild (package:flutter/src/widgets/framework.dart:2759:12)
I/flutter (24395): #104    _TheatreElement.mount (package:flutter/src/widgets/overlay.dart:494:16)
I/flutter (24395): #105    Element.inflateWidget (package:flutter/src/widgets/framework.dart:2956:14)
I/flutter (24395): #106    Element.updateChild (package:flutter/src/widgets/framework.dart:2759:12)
I/flutter (24395): #107    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3747:16)
I/flutter (24395): #108    Element.rebuild (package:flutter/src/widgets/framework.dart:3559:5)
I/flutter (24395): #109    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3716:5)
I/flutter (24395): #110    StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:3864:11)
I/flutter (24395): #111    ComponentElement.mount (package:flutter/src/widgets/framework.dart:3711:5)
I/flutter (24395): #112    Element.inflateWidget (package:flutter/src/widgets/framework.dart:2956:14)
I/flutter (24395): #113    Element.updateChild (package:flutter/src/widgets/framework.dart:2759:12)
I/flutter (24395): #114    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3747:16)
I/flutter (24395): #115    Element.rebuild (package:flutter/src/widgets/framework.dart:3559:5)
I/flutter (24395): #116    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3716:5)
I/flutter (24395): #117    ComponentElement.mount (package:flutter/src/widgets/framework.dart:3711:5)
I/flutter (24395): #118    Element.inflateWidget (package:flutter/src/widgets/framework.dart:2956:14)
I/flutter (24395): #119    Element.updateChild (package:flutter/src/widgets/framework.dart:2759:12)
I/flutter (24395): #120    SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4876:14)
I/flutter (24395): #121    Element.inflateWidget (package:flutter/src/widgets/framework.dart:2956:14)
I/flutter (24395): #122    Element.updateChild (package:flutter/src/widgets/framework.dart:2759:12)
I/flutter (24395): #123    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3747:16)
I/flutter (24395): #124    Element.rebuild (package:flutter/src/widgets/framework.dart:3559:5)
I/flutter (24395): #125    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3716:5)
I/flutter (24395): #126    StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:3864:11)
I/flutter (24395): #127    ComponentElement.mount (package:flutter/src/widgets/framework.dart:3711:5)
I/flutter (24395): #128    Element.inflateWidget (package:flutter/src/widgets/framework.dart:2956:14)
I/flutter (24395): #129    Element.updateChild (package:flutter/src/widgets/framework.dart:2759:12)
I/flutter (24395): #130    SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4876:14)
I/flutter (24395): #131    Element.inflateWidget (package:flutter/src/widgets/framework.dart:2956:14)
I/flutter (24395): #132    Element.updateChild (package:flutter/src/widgets/framework.dart:2759:12)
I/flutter (24395): #133    SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4876:14)
I/flutter (24395): #134    Element.inflateWidget (package:flutter/src/widgets/framework.dart:2956:14)
I/flutter (24395): #135    Element.updateChild (package:flutter/src/widgets/framework.dart:2759:12)
I/flutter (24395): #136    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3747:16)
I/flutter (24395): #137    Element.rebuild (package:flutter/src/widgets/framework.dart:3559:5)
I/flutter (24395): #138    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3716:5)
I/flutter (24395): #139    StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:3864:11) 
I/flutter (24395): #140    ComponentElement.mount (package:flutter/src/widgets/framework.dart:3711:5)
I/flutter (24395): #141    Element.inflateWidget (package:flutter/src/widgets/framework.dart:2956:14)
I/flutter (24395): #142    Element.updateChild (package:flutter/src/widgets/framework.dart:2759:12)
I/flutter (24395): #143    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3747:16)
I/flutter (24395): #144    Element.rebuild (package:flutter/src/widgets/framework.dart:3559:5)
I/flutter (24395): #145    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3716:5)
I/flutter (24395): #146    ComponentElement.mount (package:flutter/src/widgets/framework.dart:3711:5)
I/flutter (24395): #147    Element.inflateWidget (package:flutter/src/widgets/framework.dart:2956:14)
I/flutter (24395): #148    Element.updateChild (package:flutter/src/widgets/framework.dart:2759:12)
I/flutter (24395): #149    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3747:16)
I/flutter (24395): #150    Element.rebuild (package:flutter/src/widgets/framework.dart:3559:5)
I/flutter (24395): #151    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3716:5)
I/flutter (24395): #152    ComponentElement.mount (package:flutter/src/widgets/framework.dart:3711:5)
I/flutter (24395): #153    Element.inflateWidget (package:flutter/src/widgets/framework.dart:2956:14)
I/flutter (24395): #154    Element.updateChild (package:flutter/src/widgets/framework.dart:2759:12)
I/flutter (24395): #155    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3747:16)
I/flutter (24395): #156    Element.rebuild (package:flutter/src/widgets/framework.dart:3559:5)
I/flutter (24395): #157    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3716:5)
I/flutter (24395): #158    ComponentElement.mount (package:flutter/src/widgets/framework.dart:3711:5)
I/flutter (24395): #159    Element.inflateWidget (package:flutter/src/widgets/framework.dart:2956:14)
I/flutter (24395): #160    Element.updateChild (package:flutter/src/widgets/framework.dart:2759:12)
I/flutter (24395): #161    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3747:16)
I/flutter (24395): #162    Element.rebuild (package:flutter/src/widgets/framework.dart:3559:5)
I/flutter (24395): #163    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3716:5)
I/flutter (24395): #164    ComponentElement.mount (package:flutter/src/widgets/framework.dart:3711:5)
I/flutter (24395): #165    Element.inflateWidget (package:flutter/src/widgets/framework.dart:2956:14)
I/flutter (24395): #166    Element.updateChild (package:flutter/src/widgets/framework.dart:2759:12)
I/flutter (24395): #167    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3747:16)
I/flutter (24395): #168    Element.rebuild (package:flutter/src/widgets/framework.dart:3559:5)
I/flutter (24395): #169    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3716:5)
I/flutter (24395): #170    StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:3864:11)
I/flutter (24395): #171    ComponentElement.mount (package:flutter/src/widgets/framework.dart:3711:5)
I/flutter (24395): #172    Element.inflateWidget (package:flutter/src/widgets/framework.dart:2956:14)
I/flutter (24395): #173    Element.updateChild (package:flutter/src/widgets/framework.dart:2759:12)
I/flutter (24395): #174    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3747:16)
I/flutter (24395): #175    Element.rebuild (package:flutter/src/widgets/framework.dart:3559:5)
I/flutter (24395): #176    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3716:5)
I/flutter (24395): #177    ComponentElement.mount (package:flutter/src/widgets/framework.dart:3711:5)
I/flutter (24395): #178    Element.inflateWidget (package:flutter/src/widgets/framework.dart:2956:14)
I/flutter (24395): #179    Element.updateChild (package:flutter/src/widgets/framework.dart:2759:12)
I/flutter (24395): #180    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3747:16)
I/flutter (24395): #181    Element.rebuild (package:flutter/src/widgets/framework.dart:3559:5)
I/flutter (24395): #182    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3716:5)
I/flutter (24395): #183    ComponentElement.mount (package:flutter/src/widgets/framework.dart:3711:5)
I/flutter (24395): #184    Element.inflateWidget (package:flutter/src/widgets/framework.dart:2956:14)
I/flutter (24395): #185    Element.updateChild (package:flutter/src/widgets/framework.dart:2759:12)
I/flutter (24395): #186    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3747:16)
I/flutter (24395): #187    Element.rebuild (package:flutter/src/widgets/framework.dart:3559:5)
I/flutter (24395): #188    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3716:5)
I/flutter (24395): #189    ComponentElement.mount (package:flutter/src/widgets/framework.dart:3711:5)
I/flutter (24395): #190    Element.inflateWidget (package:flutter/src/widgets/framework.dart:2956:14)
I/flutter (24395): #191    Element.updateChild (package:flutter/src/widgets/framework.dart:2759:12)
I/flutter (24395): #192    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3747:16)
I/flutter (24395): #193    Element.rebuild (package:flutter/src/widgets/framework.dart:3559:5)
I/flutter (24395): #194    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3716:5)
I/flutter (24395): #195    ComponentElement.mount (package:flutter/src/widgets/framework.dart:3711:5)
I/flutter (24395): #196    Element.inflateWidget (package:flutter/src/widgets/framework.dart:2956:14)
I/flutter (24395): #197    Element.updateChild (package:flutter/src/widgets/framework.dart:2759:12)
I/flutter (24395): #198    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3747:16)
I/flutter (24395): #199    Element.rebuild (package:flutter/src/widgets/framework.dart:3559:5)
I/flutter (24395): #200    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3716:5)
I/flutter (24395): #201    ComponentElement.mount (package:flutter/src/widgets/framework.dart:3711:5)
I/flutter (24395): #202    Element.inflateWidget (package:flutter/src/widgets/framework.dart:2956:14)
I/flutter (24395): #203    Element.updateChild (package:flutter/src/widgets/framework.dart:2759:12)
I/flutter (24395): #204    SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4876:14)
I/flutter (24395): #205    Element.inflateWidget (package:flutter/src/widgets/framework.dart:2956:14)
I/flutter (24395): #206    Element.updateChild (package:flutter/src/widgets/framework.dart:2759:12)
I/flutter (24395): #207    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3747:16)
I/flutter (24395): #208    Element.rebuild (package:flutter/src/widgets/framework.dart:3559:5)
I/flutter (24395): #209    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3716:5)
I/flutter (24395): #210    StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:3864:11)
I/flutter (24395): #211    ComponentElement.mount (package:flutter/src/widgets/framework.dart:3711:5)
I/flutter (24395): #212    Element.inflateWidget (package:flutter/src/widgets/framework.dart:2956:14)
I/flutter (24395): #213    Element.updateChild (package:flutter/src/widgets/framework.dart:2759:12)
I/flutter (24395): #214    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3747:16)
I/flutter (24395): #215    Element.rebuild (package:flutter/src/widgets/framework.dart:3559:5)
I/flutter (24395): #216    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3716:5)
I/flutter (24395): #217    ComponentElement.mount (package:flutter/src/widgets/framework.dart:3711:5)
I/flutter (24395): #218    Element.inflateWidget (package:flutter/src/widgets/framework.dart:2956:14)
I/flutter (24395): #219    Element.updateChild (package:flutter/src/widgets/framework.dart:2759:12)
I/flutter (24395): #220    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3747:16)
I/flutter (24395): #221    Element.rebuild (package:flutter/src/widgets/framework.dart:3559:5)
I/flutter (24395): #222    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3716:5)
I/flutter (24395): #223    StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:3864:11)
I/flutter (24395): #224    ComponentElement.mount (package:flutter/src/widgets/framework.dart:3711:5)
I/flutter (24395): #225    Element.inflateWidget (package:flutter/src/widgets/framework.dart:2956:14)
I/flutter (24395): #226    Element.updateChild (package:flutter/src/widgets/framework.dart:2759:12)
I/flutter (24395): #227    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3747:16)
I/flutter (24395): #228    Element.rebuild (package:flutter/src/widgets/framework.dart:3559:5)
I/flutter (24395): #229    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3716:5)
I/flutter (24395): #230    ComponentElement.mount (package:flutter/src/widgets/framework.dart:3711:5)
I/flutter (24395): #231    Element.inflateWidget (package:flutter/src/widgets/framework.dart:2956:14)
I/flutter (24395): #232    Element.updateChild (package:flutter/src/widgets/framework.dart:2759:12)
I/flutter (24395): #233    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3747:16)
I/flutter (24395): #234    Element.rebuild (package:flutter/src/widgets/framework.dart:3559:5)
I/flutter (24395): #235    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3716:5)
I/flutter (24395): #236    StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:3864:11)
I/flutter (24395): #237    ComponentElement.mount (package:flutter/src/widgets/framework.dart:3711:5)
I/flutter (24395): #238    Element.inflateWidget (package:flutter/src/widgets/framework.dart:2956:14)
I/flutter (24395): #239    Element.updateChild (package:flutter/src/widgets/framework.dart:2759:12)
I/flutter (24395): #240    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3747:16)
I/flutter (24395): #241    Element.rebuild (package:flutter/src/widgets/framework.dart:3559:5)
I/flutter (24395): #242    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3716:5)
I/flutter (24395): #243    ComponentElement.mount (package:flutter/src/widgets/framework.dart:3711:5)
I/flutter (24395): #244    Element.inflateWidget (package:flutter/src/widgets/framework.dart:2956:14)
I/flutter (24395): #245    Element.updateChild (package:flutter/src/widgets/framework.dart:2759:12)
I/flutter (24395): #246    RenderObjectToWidgetElement._rebuild (package:flutter/src/widgets/binding.dart:933:16)
I/flutter (24395): #247    RenderObjectToWidgetElement.mount (package:flutter/src/widgets/binding.dart:904:5)
I/flutter (24395): #248    RenderObjectToWidgetAdapter.attachToRenderTree.<anonymous closure> (package:flutter/src/widgets/binding.dart:850:17)
I/flutter (24395): #249    BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2253:19)
I/flutter (24395): #250    RenderObjectToWidgetAdapter.attachToRenderTree (package:flutter/src/widgets/binding.dart:849:13)
I/flutter (24395): #251    _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding&WidgetsBinding.attachRootWidget (package:flutter/src/widgets/binding.dart:736:7)

【问题讨论】:

    标签: android ios flutter


    【解决方案1】:

    您的所有状态属性和 initState 方法都在您的构建方法中。将它们移到构建方法之外。另外,_loading 变量的初始值为 true,因此无需在 fetchData 函数的开头再次将其设置为 true。

    class Home extends StatefulWidget {
      final String header;
    
      Home({Key key, this.header}): super(key: key);
    
      @override
      _HomeState createState() => _HomeState();
    }
    
    class _HomeState extends State<Home>{
      Top top;
      bool _loading = true;
    
      @override
      void initState() {
        super.initState();
        fetchData();
      }
    
      @override
      Widget build(BuildContext context) {
        if(_loading) {
            return CircularProgressIndicator();
        }
    
        return Container(
            child: Text("LOADED");
        );
      }
    
      fetchData() async {
        //Not needed since it's already set to true.
        /*setState(() {
          _loading = true;
        });*/
    
        //Fetch top Animes
        var res = await http.get(Constants.topAnimes);
    
        var decodedJson = jsonDecode(res.body);
        print(decodedJson['top']);
    
        top = Top.fromJson(decodedJson['top']);
        print(top.toJson());
    
        setState(() {
          _loading = false;
        });
      }
    }
    

    【讨论】:

    • 谢谢,我忘了把它放在构建方法之外,我傻了!
    【解决方案2】:

    没有理由在initState() 方法中调用setState()。 设置状态是在您更改变量时触发重建。 例如,如果你想使用 _loading 布尔值来显示某种加载指示器小部件,你想调用 setState() 以让 Flutter 重建树。

    但重要的是,当您在小部件的生命周期中更改变量时,您只需要setState()。意思是在 initState() 完成并且您的小部件已构建之后。当你 f.ex 时,你通常会打电话给setState()。按下按钮触发 API 调用。然后你想在setState() 中设置_loading 来重建小部件。

    initState() 方法中,但是没有构建树。您在此函数调用期间更改的每个变量都将在小部件构建后反映。只需摆脱setState() 并直接设置您的变量没有它。

    我想这解决了这个问题。如果没有.. 无论如何,你用_loading 做什么?

    【讨论】:

      【解决方案3】:

      我已经解决了错误...只需编写 dispose 函数。

      @override
        void dispose() {
          // TODO: implement dispose
          super.dispose();
          // animationController.dispose() instead of your controller.dispose 
        }
      

      【讨论】:

        【解决方案4】:

        原因可能是,当您从上一页到达主页时,您依赖于一个未来值,它可能是共享偏好或 HTTP 获取数据,一旦未来获得它的值,它就会处理主页。 Tr 用于等待该调用,然后导航到下一页。

        【讨论】:

          猜你喜欢
          • 2021-04-12
          • 2021-08-24
          • 1970-01-01
          • 2022-10-25
          • 2021-08-13
          • 2020-10-16
          • 2021-01-28
          • 1970-01-01
          • 2019-03-21
          相关资源
          最近更新 更多