Cha*_* Jr 2 iteration element list dart flutter
我在尝试将元素从我的for循环添加到我的List...时收到以下错误。
NoSuchMethodError: The method 'addAll' was called on null.
Receiver: null
Tried calling: addAll("LrWr826cd3Y")
Run Code Online (Sandbox Code Playgroud)
这是我的代码...
Future getData() async {
//Map videoId;
String url = 'https://Youtube API';
var httpClient = createHttpClient();
var response = await httpClient.read(url);
Map data = JSON.decode(response);
var videos = data['items']; //returns a List of Maps
List searchTitles;
List searchIds;
List searchImages;
for (var items in videos) {
//iterate over the list
Map myMap = items; //store each map
final video = (myMap['id'] as Map);
print(video['videoId']);
searchIds.addAll(video['videoId']);
final details = (myMap['snippet'] as Map);
final videoimage = (details['thumbnails'] as Map);
final medium = (videoimage['medium'] as Map);
}
setState(() { });
if (!mounted) return;
}
Run Code Online (Sandbox Code Playgroud)
print(video['videoId']);成功将3个Youtube视频ID列为字符串。searchIds.addAll(video['videoId']);引发错误。我已经尝试过searchIds.add和searchIds.addAll。我要去哪里错了?
我想最终将这些列表推送到这里的List类。
class CardInfo {
//Constructor
List id;
List title;
List video;
CardInfo.fromJson(List json) {
this.id;
this.title;
this.video;
}
}
Run Code Online (Sandbox Code Playgroud)
您没有实例化searchIds对象。加上这个
List searchIds = new ArrayList<>();
Run Code Online (Sandbox Code Playgroud)
(要么)
List searchIds = new List();
Run Code Online (Sandbox Code Playgroud)