尝试创建一种方法来将字符串存储在列表中
Trying to create a method to store Strings in a list
我有一个看起来像这样的卷列表
['9v9JXgmM3F0C','RoAwAAAAYAAJ','RYAwAAAAYAAJ']
我有一个现成的功能,可以发送 个人 卷并重新运行地图。
Future<BookIdVolume> getBooksByVolume(volume) async {
var searchUrl = 'https://www.googleapis.com/books/v1/volumes/$volume';
var response = await http.get(searchUrl);
var responseBody = jsonDecode(response.body);
return BookIdVolume.fromJson(responseBody);
}
我正在尝试创建一种方法来将每个卷存储在列表中并重新运行它。
我已经尝试使用循环 for
和 forEach
但它一直在重新运行 []
或 null
我在做什么?这是更好的方法吗?
我猜你得到的是空值,因为你没有为每个卷正确构建 url。试试这个。
final volumeList = ['9v9JXgmM3F0C', 'RoAwAAAAYAAJ', 'RYAwAAAAYAAJ'];
final baseUrl = 'https://www.googleapis.com/books/v1/volumes/';
List<BookIdVolume> bookList = [];
void buildBookList() async {
for (String volume in volumeList) {
final url = '$baseUrl$volume';
final book = await getBooksByVolume(url);
bookList.add(book);
}
}
然后从 getBooksByVolume
函数中删除第一行,因为您已经发送了完整的 url.
Future<BookIdVolume> getBooksByVolume(url) async {
var response = await http.get(url);
var responseBody = jsonDecode(response.body);
return BookIdVolume.fromJson(responseBody);
}
我有一个看起来像这样的卷列表
['9v9JXgmM3F0C','RoAwAAAAYAAJ','RYAwAAAAYAAJ']
我有一个现成的功能,可以发送 个人 卷并重新运行地图。
Future<BookIdVolume> getBooksByVolume(volume) async {
var searchUrl = 'https://www.googleapis.com/books/v1/volumes/$volume';
var response = await http.get(searchUrl);
var responseBody = jsonDecode(response.body);
return BookIdVolume.fromJson(responseBody);
}
我正在尝试创建一种方法来将每个卷存储在列表中并重新运行它。
我已经尝试使用循环 for
和 forEach
但它一直在重新运行 []
或 null
我在做什么?这是更好的方法吗?
我猜你得到的是空值,因为你没有为每个卷正确构建 url。试试这个。
final volumeList = ['9v9JXgmM3F0C', 'RoAwAAAAYAAJ', 'RYAwAAAAYAAJ'];
final baseUrl = 'https://www.googleapis.com/books/v1/volumes/';
List<BookIdVolume> bookList = [];
void buildBookList() async {
for (String volume in volumeList) {
final url = '$baseUrl$volume';
final book = await getBooksByVolume(url);
bookList.add(book);
}
}
然后从 getBooksByVolume
函数中删除第一行,因为您已经发送了完整的 url.
Future<BookIdVolume> getBooksByVolume(url) async {
var response = await http.get(url);
var responseBody = jsonDecode(response.body);
return BookIdVolume.fromJson(responseBody);
}