Flutter 颤振:迭代列表时对null调用了方法“[]”
这是我到现在为止的源代码。你能告诉我出了什么问题,为什么我会犯这个错误吗 任何帮助都将不胜感激。谢谢 错误是:Flutter 颤振:迭代列表时对null调用了方法“[]”,flutter,Flutter,这是我到现在为止的源代码。你能告诉我出了什么问题,为什么我会犯这个错误吗 任何帮助都将不胜感激。谢谢 错误是: 数据[0]中出现错误,显示颤振:迭代列表导入“package:flatter/material.dart”时调用了null方法“[]” class MyGetHttpDataState extends State<MyGetHttpData> { final String url = "*******"; List data, a; int index;
数据[0]中出现错误,显示颤振:迭代列表导入“package:flatter/material.dart”时调用了null方法“[]”
class MyGetHttpDataState extends State<MyGetHttpData> {
final String url = "*******";
List data, a; int index; // Function to get the JSON data
Future<String> getJSONData() async {
var response = await http.get(url);
print(response.body);
setState(() {
json.decode(response.body);
data = dataConvertedToJSON['data']; index = 0;
});
return "Successfull";
}
@override
Widget build(BuildContext context) {
return new MaterialApp(
home: new Scaffold(
appBar: new AppBar( title: new Text('List Test'), ),
body: new Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
for (var name in data[0]['INCI']) Text(name)
], ), ), ));
}
@override
void initState() {
super.initState();
this.getJSONData();
}
}
把你的代码改成这个
Future<String> getJSONData() async {
var response = await http.get(url);
setState(() {
var dataConvertedToJSON = json.decode(response.body);
data = dataConvertedToJSON['data'];
data = data[0]['INCI'];
});
return "Successfull";
}
@override
Widget build(BuildContext context) {
return new MaterialApp(
home: new Scaffold(
appBar: new AppBar( title: new Text('List Test'), ),
body: new Center(
child: data != null ? Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
for (var name in data) Text(name)
],
) : new CircularProgressIndicator(),
),
)
);
}
当我运行代码时,它显示错误1秒,然后给我结果如果我不能这样做,我能做什么?显示什么错误?方法“[]”在null上被调用。如果我删除:对于数据[0]['INCI']Textname中的var name,不再出现错误,您想要什么?打印INCI或其他文件中的所有值?但当我进行另一次搜索时,没有找到任何结果,它会给出最后一个结果,我想显示“未找到”,只需更改新的CircularProgressIndicator,如果我再次干扰,则发送新文本Not Foundbro Sry,但当我使用AlertDialog时,它会在何时何地向我发送类似此黑屏的信息?我正在使用自定义对话框giffy import'package:giffy_dialog/giffy_dialog.dart';