尝试创建一种方法来将字符串存储在列表中

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);
  }

我正在尝试创建一种方法来将每个卷存储在列表中并重新运行它。

我已经尝试使用循环 forforEach 但它一直在重新运行 []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);
  }