构建 FutureBuilder<List<Data>> 时抛出以下 NoSuchMethodError(脏,状态:_FutureBuilderState<List<Data>>#d53db)

Hel*_*ood 5 dart flutter

我似乎无法弄清楚这一点,所以请如果有人可以帮助我,我有点陷入困境!

\n
import 'dart:async';\nimport 'dart:convert';\nimport 'package:http/http.dart' as HTTP;\nimport 'package:flutter/material.dart';\nimport 'package:coding/Data.dart';\n\n\nvoid main()=>\nrunApp(new MaterialApp(\n  home: MyApp(),\n  debugShowCheckedModeBanner: false,\n));\nclass MyApp extends StatefulWidget {\n@override\n_MyAppState createState() => _MyAppState();\n}\n\nclass _MyAppState extends State<MyApp> {\n@override\nWidget build(BuildContext context) {\ntry {\n  return Scaffold(\n    appBar: AppBar(\n      backgroundColor: Colors.transparent,\n      actions: [new IconButton(icon: Icon(Icons.arrow_back_ios), onPressed: (){}),],\n    ),\n    body: ListView(\n        children: <Widget>[\n          new Container(\n            height: 500.0,\n            margin: EdgeInsets.all(7.0),\n            child: new FutureBuilder(\n              future: getAllData(),\n              builder: (BuildContext c,AsyncSnapshot snapshot) {\n                  return ListView.builder(\n                    itemCount: snapshot.data.length,\n                    itemBuilder: (BuildContext c,int index) {\n                      return Card(\n                        elevation: 10.0,\n                        child: new Column(\n                          children: <Widget>[\n                            new Image.network(snapshot.data[index].link,\n                              height: 150.0,\n                              width: 150.0,\n                              fit: BoxFit.cover,),\n                          ],\n                        ),\n                      );\n                    },);\n              },\n            ),\n          ),\n        ]\n    ),\n  );\n}\ncatch (e){\n}\n}\n}\nFuture<List<Data>> getAllData() async{\nvar api="https://www.awanmart.com/wp-json/wp/v2/categories";\nvar data=await http.get(api);\n\nvar jsonData=json.decode(data.body);\nList<Data>listOf=[];\n\nfor(var i in jsonData){\nData data=new Data(i["id"],i ["count"], i["description"], i["link"], i["name"], i["slug"],I \n["taxonomy"], i["parent"],i ["meta"], i["_links"], i["self"], i["href"], i["collection"], \ni["about"], i["post_type"], i["curies"], i["templated"]);\n}\nreturn jsonData;\n}\n
Run Code Online (Sandbox Code Playgroud)\n

(这是我的调试控制台)

\n
\xe2\x95\x90\xe2\x95\xa1 EXCEPTION CAUGHT BY WIDGETS LIBRARY \xe2\x95\x9e\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90 The following NoSuchMethodError was thrown building FutureBuilder<List<Data>>(dirty, state:\n_FutureBuilderState<List<Data>>#d53db): The getter 'length' was called on null. Receiver: null Tried calling: length\n\nThe relevant error-causing widget was:\n  \n\n FutureBuilder<List<Data>> file:///D:/myappp/coding/lib/main.dart:32:28\n\nWhen the exception was thrown, this was the stack:\n#0      Object.noSuchMethod (dart:core-patch/object_patch.dart:51:5)\n#1      _MyAppState.build.<anonymous closure> (package:coding/main.dart:36:50)\n#2      _FutureBuilderState.build (package:flutter/src/widgets/async.dart:740:55)\n#3      StatefulElement.build (package:flutter/src/widgets/framework.dart:4663:28)\n#4      ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4546:15)\n#5      StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4719:11)\n#6      Element.rebuild (package:flutter/src/widgets/framework.dart:4262:5)\n#7      ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4525:5)\n#8      StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4710:11)\n#9      ComponentElement.mount (package:flutter/src/widgets/framework.dart:4520:5) ...     Normal element mounting (45 frames)\n#54     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3490:14)\n#55     Element.updateChild (package:flutter/src/widgets/framework.dart:3258:18)\n#56     SliverMultiBoxAdaptorElement.updateChild (package:flutter/src/widgets/sliver.dart:1164:36)\n#57     SliverMultiBoxAdaptorElement.createChild.<anonymous closure> (package:flutter/src/widgets/sliver.dart:1149:20)\n#58     BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2620:19)\n#59     SliverMultiBoxAdaptorElement.createChild (package:flutter/src/widgets/sliver.dart:1142:11)\n#60     RenderSliverMultiBoxAdaptor._createOrObtainChild d.<anonymous closure> (package:flutter/src/rendering/sliver_multi_box_adaptor.dart:356:23)\n#61     RenderObject.invokeLayoutCallback.<anonymous closure> (package:flutter/src/rendering/object.dart:1868:58)\n#62     PipelineOwner._enableMutationsToDirtySubtrees (package:flutter/src/rendering/object.dart:920:15)\n#63     RenderObject.invokeLayoutCallback (package:flutter/src/rendering/object.dart:1868:13)\n#64     RenderSliverMultiBoxAdaptor._createOrObtainChild (package:flutter/src/rendering/sliver_multi_box_adaptor.dart:345:5)\n#65     RenderSliverMultiBoxAdaptor.addInitialChild (package:flutter/src/rendering/sliver_multi_box_adaptor.dart:429:5)\n#66     RenderSliverList.performLayout (package:flutter/src/rendering/sliver_list.dart:81:12)\n#67     RenderObject.layout (package:flutter/src/rendering/object.dart:1769:7)\n#68     RenderSliverEdgeInsetsPadding.performLayout (package:flutter/src/rendering/sliver_padding.dart:137:11)\n#69     RenderSliverPadding.performLayout (package:flutter/src/rendering/sliver_padding.dart:377:11)\n#70     RenderObject.layout (package:flutter/src/rendering/object.dart:1769:7)\n#71     RenderViewportBase.layoutChildSequence (package:flutter/src/rendering/viewport.dart:471:13)\n#72     RenderViewport._attemptLayout (package:flutter/src/rendering/viewport.dart:1465:12)\n#73     RenderViewport.performLayout (package:flutter/src/rendering/viewport.dart:1374:20)\n#74     RenderObject.layout (package:flutter/src/rendering/object.dart:1769:7)\n#75     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:115:13)\n#76     RenderObject.layout (package:flutter/src/rendering/object.dart:1769:7)\n#77     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:115:13)\n#78     RenderObject.layout (package:flutter/src/rendering/object.dart:1769:7)\n#79     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:115:13)\n#80     RenderObject.layout (package:flutter/src/rendering/object.dart:1769:7)\n#81     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:115:13)\n#82     RenderObject.layout (package:flutter/src/rendering/object.dart:1769:7)\n#83     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:115:13)\n#84     RenderObject.layout (package:flutter/src/rendering/object.dart:1769:7)\n#85     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:115:13)\n#86     RenderObject.layout (package:flutter/src/rendering/object.dart:1769:7)\n#87     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:115:13)\n#88     RenderObject.layout (package:flutter/src/rendering/object.dart:1769:7)\n#89     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:115:13)\n#90     RenderObject.layout (package:flutter/src/rendering/object.dart:1769:7)\n#91     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:115:13)\n#92     RenderObject.layout (package:flutter/src/rendering/object.dart:1769:7)\n#93     MultiChildLayoutDelegate.layoutChild (package:flutter/src/rendering/custom_layout.dart:173:11)\n#94     _ScaffoldLayout.performLayout (package:flutter/src/material/scaffold.dart:495:7)\n#95     MultiChildLayoutDelegate._callPerformLayout (package:flutter/src/rendering/custom_layout.dart:242:7)\n#96     RenderCustomMultiChildLayoutBox.performLayout (package:flutter/src/rendering/custom_layout.dart:401:14)\n#97     RenderObject.layout (package:flutter/src/rendering/object.dart:1769:7)\n#98     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:115:13)\n#99     RenderObject.layout (package:flutter/src/rendering/object.dart:1769:7)\n#100    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:115:13)\n#101    _RenderCustomClip.performLayout (package:flutter/src/rendering/proxy_box.dart:1269:11)\n#102    RenderObject.layout (package:flutter/src/rendering/object.dart:1769:7)\n#103    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:115:13)\n#104    RenderObject.layout (package:flutter/src/rendering/object.dart:1769:7)\n#105    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:115:13)\n#106    RenderObject.layout (package:flutter/src/rendering/object.dart:1769:7)\n#107    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:115:13)\n#108    RenderObject.layout (package:flutter/src/rendering/object.dart:1769:7)\n#109    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:115:13)\n#110    RenderObject.layout (package:flutter/src/rendering/object.dart:1769:7)\n#111    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:115:13)\n#112    RenderObject.layout (package:flutter/src/rendering/object.dart:1769:7)\n#113    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:115:13)\n#114    RenderObject.layout (package:flutter/src/rendering/object.dart:1769:7)\n#115    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:115:13)\n#116    RenderObject.layout (package:flutter/src/rendering/object.dart:1769:7)\n#117    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:115:13)\n#118    RenderOffstage.performLayout (package:flutter/src/rendering/proxy_box.dart:3228:13)\n#119    RenderObject.layout (package:flutter/src/rendering/object.dart:1769:7)\n#120    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:115:13)\n#121    RenderObject.layout (package:flutter/src/rendering/object.dart:1769:7)\n#122    _RenderTheatre.performLayout (package:flutter/src/widgets/overlay.dart:702:15)\n#123    RenderObject.layout (package:flutter/src/rendering/object.dart:1769:7)\n#124    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:115:13)\n#125    RenderObject.layout (package:flutter/src/rendering/object.dart:1769:7)\n#126    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:115:13)\n#127    RenderObject.layout (package:flutter/src/rendering/object.dart:1769:7)\n#128    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:115:13)\n#129    RenderObject.layout (package:flutter/src/rendering/object.dart:1769:7)\n#130    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:115:13)\n#131    RenderObject.layout (package:flutter/src/rendering/object.dart:1769:7)\n#132    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:115:13)\n#133    RenderObject.layout (package:flutter/src/rendering/object.dart:1769:7)\n#134    RenderView.performLayout (package:flutter/src/rendering/view.dart:170:13)\n#135    RenderObject._layoutWithoutResize (package:flutter/src/rendering/object.dart:1632:7)\n#136    PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:889:18)\n#137    RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:404:19)\n#138    WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:867:13)\n#139    RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:286:5)\n#140    SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1117:15)\n#141    SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1056:9)\n#142    SchedulerBinding.scheduleWarmUpFrame.<anonymous closure> (package:flutter/src/scheduler/binding.dart:865:7) (elided 11 frames from class _RawReceivePortImpl, class _Timer, dart:async, and dart:async-patch)\n\n\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\n
Run Code Online (Sandbox Code Playgroud)\n

小智 2

据我所知,您不会检查是否snapshot不是null

builder: (BuildContext c,AsyncSnapshot snapshot) {
              return ListView.builder(
                itemCount: snapshot.data.length,
                itemBuilder: (BuildContext c,int index) {
                  return Card(
                    elevation: 10.0,
Run Code Online (Sandbox Code Playgroud)

应该看起来更像这样:

builder: (BuildContext c,AsyncSnapshot snapshot) {
             if(snapshot.data!=null){
              return ListView.builder(
                itemCount: snapshot.data.length,
                itemBuilder: (BuildContext c,int index) {
                  return Card(

                    elevation: 10.0,
             else { return Container(...))
Run Code Online (Sandbox Code Playgroud)