Flu*_*ase 12 dart flutter flutter-provider
我的应用程序有两种类型的用户:管理员和普通用户。我向管理员显示管理屏幕,向普通用户显示普通屏幕。所有用户都需要访问Provider model1。但只有 admin 需要 access model2。
我如何只能model2为管理员用户初始化?
例如:
class MyApp extends StatelessWidget {
final model1 = Model1();
final model2 = Model2();
@override
Widget build(BuildContext context) {
return MultiProvider(
providers: [
ChangeNotifierProvider(builder: (_) => model1),
ChangeNotifierProvider(builder: (_) => model2),
],
child: MaterialApp(
Run Code Online (Sandbox Code Playgroud)
我想提出model2只在AdminScreen。但是,如果我这样做,其他管理页面将无法访问model2,Navigator.push因为它们不是AdminScreen.
感谢帮助!
har*_*eri 17
您可以将现有模型向前传递,使用现有模型ChangeNotifierProvider的值创建一个新模型。
为此,您需要使用ChangeNotifierProvider.value构造函数传递现有model2值作为值。
如果您已经有一个 ChangeNotifier 实例并想要公开它,您应该使用 ChangeNotifierProvider.value 而不是默认构造函数。
MaterialPageRoute(
builder: (context) => ChangeNotifierProvider<Model2>.value(
value: model2,
child: SecondRoute(),
),
);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6823 次 |
| 最近记录: |