我似乎无法弄清楚这一点,所以请如果有人可以帮助我,我有点陷入困境!
\nimport '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}\nRun 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\nRun 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)