A Provider 被处理后被使用 - Multiprovider

Fel*_*sto 6 dart flutter flutter-provider

添加对的依赖项后ProfileLogicLocationLogic应用程序启动时出现以下错误:

I/flutter(14674):一个LocationLogic被废弃后使用。

I/flutter (14674):一旦您在 LocationLogic 上调用了 dispose(),就不能再使用它。

这些是我的提供者:

      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()),
      ]
Run Code Online (Sandbox Code Playgroud)

奇怪的是,一切正常,即使有那个错误。

小智 5

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

        MaterialApp(
          home: MultiProvider(
            providers: [...],
            child: child,
            )
        )
Run Code Online (Sandbox Code Playgroud)

做类似的事情:

        MultiProvider(
          providers: [...],
          child: MaterialApp(
            home: child,
          )
        )
Run Code Online (Sandbox Code Playgroud)

如果这没有帮助,您需要提供更多背景信息。例如。小部件树是什么样的。