Flutter 如何处置在颤振中包装整个MaterialApp的供应商
当我用MultiProvider包装MaterialApp的主窗口小部件时 它工作正常,但是当我想导航到另一个已经包含依赖于提供者的小部件的页面时 显示一条消息,告诉我 “在上面找不到正确的提供程序…等等” 但是当我把整个材料包裹起来的时候,效果很好 但问题是 即使我删除所有小部件树并插入新页面 提供商仍有其数据,我需要将其处置 因为在从导航器堆栈中删除所有以前的页面后,我可以从新插入的页面中访问提供程序的数据 如何强制处置已包装MaterialApp的提供程序 下面是示例代码Flutter 如何处置在颤振中包装整个MaterialApp的供应商,flutter,dispose,provider,state-management,Flutter,Dispose,Provider,State Management,当我用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,
主页:登录页(),
路线:导航服务。导航路线),
);
}
}```