как избавиться от провайдера, который упаковывает все MaterialApp во Flutter - PullRequest
0 голосов
/ 04 апреля 2020

Когда я оборачиваю виджет, который является домом для MaterialApp, с MultiProvider, он работает нормально, но когда я хочу перейти на другую страницу, которая уже содержит виджеты, которые зависят от поставщика,

появляется сообщение, что скажите мне

"Не удалось найти правильный поставщик выше .... и так далее"

, но когда я обертываю весь MaterialApp, он отлично работает

, но проблема заключается в

даже когда я удаляю все дерево виджетов и вставляю новую страницу

у провайдера все еще есть свои данные, и мне нужно, чтобы он удалил

, потому что я могу получить доступ к данным провайдер изнутри вновь вставленной страницы после удаления всех предыдущих страниц из стека навигатора

как я могу принудительно утилизировать провайдера, который уже оборачивает MaterialApp

, вот пример кода

            class MyApp extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return MultiProvider(
          providers: [
            ChangeNotifierProvider<CommonWidgetsStateProvider>(
              create: (context) => CommonWidgetsStateProvider(),
            ),
            ChangeNotifierProvider<CollegePostSignUpState>(
            create: (context) => CollegePostSignUpState()),
            ChangeNotifierProvider<SchoolStudentPostSignupState>(
            create: (context) => SchoolStudentPostSignupState()),
            ChangeNotifierProvider(create: (context) => ExecutionState())
           ],
          child: MaterialApp(
          debugShowCheckedModeBanner: false,
          home: LandingPage(),
          routes: NavigatorServices.navigatorRoutes),
         );
        }
}```
...