[当我检查我需要从服务器获取的数据时,我得到了一个带有null的map错误

问题描述 投票:0回答:1

i got this error when i try to map a list that i need to get from a server


**您可以找到导致noSuchMethodError **的代码

     Future<void> fetchAndSetOrders() async {
    const url = 'https://flutter-shop-app-d675a.firebaseio.com/orders.json';
    final response = await http.get(url);
    final List<OrderItem> loadedOrders = [];
    final extractedData = json.decode(response.body) as Map<String, dynamic>;
    if (extractedData == null) {
      return;
    }
    extractedData.forEach((orderId, orderData) {
      loadedOrders.add(
        OrderItem(
          id: orderId,
          totalAmount: orderData['totalamount'],
          dateTime: DateTime.parse(orderData['dateTime']),
          products: (orderData['products'] as List<dynamic>)
              .map(
                (item) => CartItem(
                      id: item['id'],
                      price: item['price'],
                      quantity: item['quantity'],
                      title: item['title'],
                    ),
              )
              .toList(),
        ),
      );
    });
    _orders = loadedOrders.reversed.toList();
    notifyListeners();
  }
dictionary flutter dart null fetch
1个回答
0
投票

例如,某些订单没有产品:

"-M5vdHyPFMBDzyx-5_FW":{
  "dateTime":"2020-04-27T14:38:15.033916",
  "totalamount":0.0
},

结果,表达式(orderData['products'] as List<dynamic>)的计算结果为null,并在其上调用map函数会中断程序。

© www.soinside.com 2019 - 2024. All rights reserved.