在我的应用程序中,我有很多提供程序,例如通知、身份验证、个人资料、对话、旅行等...现在我需要在用户注销时重新初始化所有提供程序。否则旧的用户数据仍将保留在提供程序中,新用户将获得它们。
最佳答案
折腾了一天,我就这样解决了这个问题。这是我能做的最优雅的方式。因此,注销后,您必须删除所有屏幕并导航到根小部件,在其中创建您的 Provider 或 MultiProvider,因此您的提供程序或 MultiProvider 内的所有提供程序将被重新创建,并且所有数据将被重新初始化
Navigator.of(context).pushAndRemoveUntil<T>(
MaterialPageRoute(
builder: (_) => MyApp(),
),
(_) => false,
);
其中 MyApp 是根小部件,它作为参数传递到 main.dart 的主函数中。
runApp(
MyApp(token: token),
);
关于flutter - 如何初始化flutter Multi Provider所有providers数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68566338/