gpt4 book ai didi

flutter - Navigator.push() : Error: Could not find the correct Provider above this Consumer Widget

转载 作者:行者123 更新时间:2023-12-03 21:16:43 51 4
gpt4 key购买 nike

我试图在我的 Flutter 应用程序中实现一些基本的状态管理。在 Widget 树的某处,我有一个用户的提供者。更向下的小部件可以使用消费者用户小部件访问用户。然而,一个小部件(下面截取的代码中的 WidgetB)是使用 Navigator.push() 构建的,并且无法访问用户。按下按钮会抛出错误:

Error: Could not find the correct Provider above this Consumer Widget


floatingActionButton: FloatingActionButton(
child: Icon(Icons.play),
onPressed: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => Consumer<User>(
builder: (context, user, child) => WidgetB(user: user),
),
),
);
},
),

如何访问 WidgetB(或 WidgetB 的某些子 Widget)中的用户?

最佳答案

确保您的提供程序设置在 MaterialApp 级别。例如,像这样:

void main() {
runApp(MultiProvider(
providers: [
ChangeNotifierProvider(
create: (_) => Provider1(),
),
ChangeNotifierProvider(
create: (_) => Provider2(),
),
],
child: MyApp(),
));
}

class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: MainPage(),
);
}
}

关于flutter - Navigator.push() : Error: Could not find the correct Provider above this Consumer Widget,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60045822/

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