flutter - A Provider 被处理后被使用 - Multiprovider

标签 flutter dart flutter-provider

在我添加了 ProfileLogic 的依赖之后至 LocationLogic应用程序启动时出现以下错误:

I/flutter (14674): A LocationLogic was used after being disposed.

I/flutter (14674): Once you have called dispose() on a LocationLogic, it can no longer be used.


这些是我的提供者:
      providers: [
        ChangeNotifierProvider(builder: (_) => ConnectivityLogic()),
        ChangeNotifierProxyProvider<ConnectivityLogic, ProfileLogic>(
          builder: (context, connectivity, previousMessages) =>
              ProfileLogic(connectivity.isOnline),
          initialBuilder: (BuildContext context) => ProfileLogic(false),
        ),
        ChangeNotifierProxyProvider<ProfileLogic, LocationLogic>(
          builder: (context, profileLogic, previousMessages) =>
              LocationLogic(profileLogic.profile),
          initialBuilder: (BuildContext context) => LocationLogic(null),
        ),
        ChangeNotifierProvider(builder: (_) => SignUpModel()),
        ChangeNotifierProxyProvider<ConnectivityLogic, WorkLogic>(
          builder: (context, connectivity, previousMessages) =>
              WorkLogic(connectivity.isOnline),
          initialBuilder: (BuildContext context) => WorkLogic(false),
        ),
        ChangeNotifierProvider(builder: (_) => OrderLogic()),
      ]
奇怪的是,一切正常,即使有那个错误。

最佳答案

我认为你处理了一个包含这些提供者的小部件。尝试将所需的提供程序在树中移到更高的位置。所以如果你有:

        MaterialApp(
          home: MultiProvider(
            providers: [...],
            child: child,
            )
        )
做类似的事情:
        MultiProvider(
          providers: [...],
          child: MaterialApp(
            home: child,
          )
        )
如果这无济于事,您需要提供更多背景信息。例如。什么是小部件树。

关于flutter - A Provider 被处理后被使用 - Multiprovider,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58896629/

相关文章:

android - 如何使用 flutter dio 下载文件?

flutter - 如何使用 StreamProvider 检查 Firestore 快照流的 ConnectionState?

flutter - 如何在 flutter 中等待 setter/getter ?

java - 在 Flutter 应用程序中使用 Java 或其他语言

flutter - 在 Flutter 的平板电脑上制作固定的应用范围菜单而不是 Drawer

flutter - 如何使用底部按钮和图像上的文本构建StaggeredGridView

flutter - 何时在 Flutter 中使用 Provider.of<X> 与 Consumer<X>

android - flutter 构建失败。 Android 依赖 'androidx.core:core' 具有不同版本的编译(1.0.0)和运行时(1.0.1)类路径

flutter - 在 Flutter 中导航后显示 snackbar

flutter - 如何使用正则表达式删除 Dart 上的点字母后?