Flutter "ChangeNotifierProxyProvider 有一个错误。错误:"未定义命名参数'生成器'。



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 ?? []);
},
),

相关内容

  • 没有找到相关文章

最新更新