flutter - 未处理的异常:“String”类型不是“index”的“int”类型的子类型
问题描述
我的代码有问题。以前一切正常,但现在我收到此错误。我认为这是一个很小的错误,但我看不到?我在颤振方面很新,没有太多的知识。从现在开始,我正在做一个视频课程。有谁能够帮我?
谢谢!
错误信息:
#0 Products.fetchAndSetProducts.<anonymous closure> (package:shop_app_flutter/providers/products.dart:83:26)
#1 __InternalLinkedHashMap&_HashVMBase&MapMixin&_LinkedHashMapMixin.forEach (dart:collection-patch/compact_hash.dart:367:8)
#2 Products.fetchAndSetProducts (package:shop_app_flutter/providers/products.dart:80:21)
<asynchronous suspension>
#3 _ProductsOverviewScreenState.didChangeDependencies (package:shop_app_flutter/screens/products_overview_screen.dart:41:38)
#4 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:3862:12)
#5 ComponentElement.mount (package:flutter/src/widgets/framework.dart:3717:5)
#6 Element.inflateWidget (package:flutter/src/widgets/framework.dart:2961:14)
#7 Element.updateChild (package:flutter/src/widgets/framework.dart:2764:12)
#8 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/f<…>
产品.dart:
import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
import '../models/http_exception.dart';
import './product.dart';
class Products with ChangeNotifier {
List<Product> _items = [];
List<Product> get items {
return [..._items];
}
List<Product> get favoriteItems {
return _items.where((prodItem) => prodItem.isFavorite).toList();
}
Product findById(String id) {
return _items.firstWhere((prod) => prod.id == id);
}
Future<void> fetchAndSetProducts() async {
const url = 'https://flutter-update.firebaseio.com/products.json';
try {
final response = await http.get(url);
final extractedData = json.decode(response.body) as Map<String, dynamic>;
if (extractedData == null) {
return;
}
final List<Product> loadedProducts = [];
extractedData.forEach((prodId, prodData) {
loadedProducts.add(Product(
id: prodId,
title: prodData['title'],
description: prodData['description'],
price: prodData['price'],
isFavorite: prodData['isFavorite'],
imageUrl: prodData['imageUrl'],
));
});
_items = loadedProducts;
notifyListeners();
} catch (error) {
throw (error);
}
}
}
解决方案
推荐阅读
- bash - 按数字字段(子字符串)对文件名进行排序
- powerbuilder - 是否可以在 PowerBuilder 中设置自动更新?
- python - 查询中的 web2py 内部错误
- sqlite - 无法加载 DLL 'SQLite.Interop.dll
- ios - React Native 应用程序在 iOS TestFlight 上立即崩溃
- python - 对 pandas 数据框执行数学运算
- sql - 替换列 SQL Server 中的值
- java - 如何使用 selenium webdriver java 从城市字段的 GoIbibo 中的自动选择下拉列表中选择一个元素
- mysql - 从有条件的其他表中插入到表中
- maven - mvn appengine:devserver [错误] 在可用目标中的插件 com.google.cloud.tools:appengine-maven-plugin:1.3.1 中找不到目标“devserver”