字符串"不是"索引"颤振的类型"int"的子类型,同时将 API 数据提取到 ListView 中。扑动



这里我试图从api中获取数据,并使用streambuilder 将其传递到listview

class _MyHomePageState extends State<MyHomePage> {

String _url = "https://owlbot.info/api/v4/dictionary";
String _token = "f2b517e6582daa3acc7df5f259c5707dc9d2147e";

TextEditingController _controller = TextEditingController();

StreamController _streamController;
Stream _stream;

_search() async{
if(_controller.text == null || _controller.text.length == 0){
_streamController.add(null);
}
Response response = await get(_url + _controller.text.trim(), headers: {"Authorization": "Token " + _token});
if(response.statusCode == 200){
var encode = json.encode(response.body);

_streamController.add(json.decode(encode));
}
else{
print(response.statusCode);
}
}

这是我想在列表视图中显示数据的代码,但我收到了一个错误(字符串"不是"index"的类型"int"的子类型(

return ListView.builder(
itemCount: snapshot.data["definitions"].length ,
itemBuilder: (BuildContext context, int index){
return ListBody(
children: <Widget>[
Container(
color: Colors.grey[300],
child: ListTile(
leading: snapshot.data["definitions"][index]["image_url"] = null ? null : CircleAvatar(
backgroundImage: NetworkImage(snapshot.data["definitions"][index]["image_url"]),
),
),
),
],
);
},
);

检查此

return ListView.builder(
itemCount: snapshot.data["definitions"].length ,
itemBuilder: (BuildContext context, int index){
return ListBody(
children: <Widget>[
Container(
color: Colors.grey[300],
child: ListTile(
leading: snapshot.data["definitions"][index]["image_url"] = null ? null : CircleAvatar(
backgroundImage: NetworkImage((snapshot.data["definitions"] as List)[index]["image_url"]),
),
),
),
],
);
},
);

最新更新