gpt4 book ai didi

flutter - 导航到另一条路线后如何消费Provider?

转载 作者:行者123 更新时间:2023-12-02 11:23:00 26 4
gpt4 key购买 nike

我的应用程序有两种类型的用户:管理员和普通用户。我向管理员显示管理屏幕,向普通用户显示普通屏幕。所有用户都需要访问Provider model1。但只有管理员需要访问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(

我只想将 model2 放入 AdminScreen 中。但是,如果我这样做,其他管理页面将无法在 Navigator.push 之后访问 model2,因为它们不是 AdminScreen 的后代。

感谢您的帮助!

最佳答案

您可以使用现有模型的值向前传递现有模型,创建一个新的 ChangeNotifierProvider

为此,您需要使用 ChangeNotifierProvider.value 构造函数传递现有 model2 作为值。

If you already have an instance of ChangeNotifier and want to expose it, you should use ChangeNotifierProvider.value instead of the default constructor.

MaterialPageRoute(
builder: (context) => ChangeNotifierProvider<Model2>.value(
value: model2,
child: SecondRoute(),
),
);

关于flutter - 导航到另一条路线后如何消费Provider?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57913888/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com