我正在使用MultiProvider,但出现此错误:
Unhandled Exception: A Products was used after being disposed. Once you have called dispose() on a Products, it can no longer be used.
Run Code Online (Sandbox Code Playgroud)
这是我的 main.dart 文件。这种结构有什么问题?
Unhandled Exception: A Products was used after being disposed. Once you have called dispose() on a Products, it can no longer be used.
Run Code Online (Sandbox Code Playgroud)
使用 yourProvider.value 而不是 Create Your Problem will Be Solved 。谢谢
itemBuilder: (ctx, index) => ChangeNotifierProvider.value(
value: products[index],
child: ProductItem(),
),
itemCount: products.length,
);
Run Code Online (Sandbox Code Playgroud)
小智 0
我认为您必须将 Products Provider 添加到代理提供商上方的providers: [] 作为 Auth Provider 的定义,如下所示:
providers: [
ChangeNotifierProvider<Auth>.value(
value: Auth(),
ChangeNotifierProvider<Products>.value(
value: Products(),
ChangeNotifierProxyProvider<Auth, Products>(
update: (ctx, auth, previousProducts) => Products(
auth.token,
auth.userId,
previousProducts == null ? [] : previousProducts.items,
),
),
ChangeNotifierProvider<Cart>.value(
value: Cart(),
),
ChangeNotifierProxyProvider<Auth, Orders>(
update: (ctx, auth, previousOrders) => Orders(
auth.token,
auth.userId,
previousOrders == null ? [] : previousOrders.orders,
),
),
],
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2990 次 |
| 最近记录: |