【发布时间】:2021-09-10 13:52:23
【问题描述】:
我是 Flutter Provider 状态管理的新手。如果每个视图都有自己的视图模型,那么如何在视图模型之间共享数据? 假设您有一个包含列表的视图模型,您想在一个屏幕中显示列表,而在另一个屏幕中您想显示列表计数?
【问题讨论】:
-
你有代码吗?
我是 Flutter Provider 状态管理的新手。如果每个视图都有自己的视图模型,那么如何在视图模型之间共享数据? 假设您有一个包含列表的视图模型,您想在一个屏幕中显示列表,而在另一个屏幕中您想显示列表计数?
【问题讨论】:
您可以将ViewModels 放在小部件树的顶部,在MaterialApp 之前
class App extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MultiProvider(
providers: <SingleChildWidget>[
ChangeNotifierProvider<ViewModel1>(create: (_) => ViewModel1()),
ChangeNotifierProvider<ViewModel2>(create: (_) => ViewModel2()),
],
child: MaterialApp( ... );
);
}
}
这样您就可以在任何地方访问这两个视图模型
【讨论】: