main.dart文件ChangeNotificationProxyProvider存在问题,未定义生成器方法。
ChangeNotifierProxyProvider<Auth, Orders>(
builder: (ctx, auth, previousOrders) => Orders(
auth.token,
auth.userId,
previousOrders == null ? [] : previousOrders.orders,
),
),
ChangeNotifierProxyProvider<Auth, Products>(
create: (_) => Products('', '', []),
update: (_, auth, prevProducts) {
return Products(
auth.token,
auth.userId,
prevProducts == null ? [] : prevProducts.items,
);
},
),
他们没有像ChangeNotificationProxyProvider中的builder那样的参数,这就是为什么你会得到这个错误。
在ChangeNotificationerProxyProvider中,您必须提供create、update和child。
在这里,在create中可以创建对象,在update中可以指定何时更改提供者的值,何时通知程序依赖于其他模型。
ChangeNotifierProxyProvider<MyModel, MyChangeNotifier>(
create: (_) => MyChangeNotifier(),
update: (_, myModel, myNotifier) => myNotifier
..update(myModel),
child: ...
);
ChangeNotifierProvider支持生成器参数,但从v3.x.0迁移到v4.0.0+时,一些参数发生了更改,生成器就是其中之一。
相反,initialBuilder应替换为create。
"代理"提供商 的构建器应替换为更新
经典提供程序 的生成器应替换为create。
对于provider: ^5.0.0
,这也应该像预期的一样工作
ChangeNotifierProxyProvider<Auth, Products>(
create: (ctx) {
return Products();
},
update: (ctx, auth, prev) {
return Products()
..setAuthToken(auth.token ?? '')
..setItems(prev?.items ?? []);
},
),