【问题标题】:Flutter problem with ChangeNotifierProxyProvider createChangeNotifierProxyProvider 创建的颤振问题
【发布时间】: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

标签: flutter flutter-provider


【解决方案1】:

好吧,愚蠢的错误,我指的是 Provider.of 的错误上下文

我把这个问题留给创建和更新的实现,因为周围没有很多例子

【讨论】:

  • 对于那些仍然想知道他/她的意思的人,它是关于:create: (context) =&gt; ContoProvider.init(
猜你喜欢
  • 1970-01-01
  • 2021-05-27
  • 2021-11-16
  • 2021-05-05
  • 2022-01-12
  • 2021-10-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多