Flutter 如何处置在颤振中包装整个MaterialApp的供应商

Flutter 如何处置在颤振中包装整个MaterialApp的供应商,flutter,dispose,provider,state-management,Flutter,Dispose,Provider,State Management,当我用MultiProvider包装MaterialApp的主窗口小部件时 它工作正常,但是当我想导航到另一个已经包含依赖于提供者的小部件的页面时 显示一条消息,告诉我 “在上面找不到正确的提供程序…等等” 但是当我把整个材料包裹起来的时候,效果很好 但问题是 即使我删除所有小部件树并插入新页面 提供商仍有其数据,我需要将其处置 因为在从导航器堆栈中删除所有以前的页面后,我可以从新插入的页面中访问提供程序的数据 如何强制处置已包装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),
         );
        }
}```
类MyApp扩展了无状态小部件{
@凌驾
小部件构建(构建上下文){
回程多供应商(
供应商:[
变更通知提供者(
创建:(上下文)=>CommonWidgetsStateProvider(),
),
变更通知提供者(
create:(context)=>CollegePostSignUpState()),
变更通知提供者(
创建:(上下文)=>SchoolStudentPostSignupState()),
ChangeNotifierProvider(创建:(上下文)=>ExecutionState())
],
孩子:MaterialApp(
debugShowCheckedModeBanner:false,
主页:登录页(),
路线:导航服务。导航路线),
);
}
}```