【发布时间】:2020-06-20 18:36:01
【问题描述】:
由于 Flutter 中 ChangeNotifierProxyProvider 的构建器方法已被弃用,我正在尝试实现提供程序 4 的创建和更新新方法。
我在创建时需要在另一个 Provider(ContoProvider) 中调用名为 User Provider 的主要 Auth Provider,但我有运行时错误,找不到 Provider。所有这些提供程序都在 main.dart 文件中的 Multiprovider 中,因此位于小部件链的顶部。
可能这不是传递提供程序的正确方法,但我需要在创建中,因为我立即使用它
return MultiProvider(
providers: [
ChangeNotifierProvider<UserProvider>(
create: (_) => UserProvider.init(),
),
ChangeNotifierProxyProvider<UserProvider, ContoProvider>(
create: (_) => ContoProvider.init(
Provider.of<UserProvider>(context, listen: false),
),
update: (_, userProvider, contoProvider) =>
contoProvider..update(userProvider),
),
],child:..
【问题讨论】:
-
contoProvider..update(userProvider)我想在update方法中通知userProvider的Listeners()。如果我使用notifyListeners(),那么它会给我错误setstate() or markneedsbuild() called during build