【发布时间】:2020-12-24 23:16:26
【问题描述】:
我刚开始使用 provider 作为 Flutter 的状态管理。我在提供程序中有一个值用于初始登录。 isLogin 将返回 true 或 false 并根据它将用户重定向到主页或登录页面。我收到以下错误:
在这个 MyApp Widget 上方找不到正确的 Provider
另外,这是进行身份验证的好方法还是有更好的方法。我正在使用 laravel API 进行身份验证。
Main.dart
void main() {
runApp(MyApp());
}
@override
Widget build(BuildContext context) {
return ChangeNotifierProvider<UserProvider>(
create: (context) => UserProvider(),
child: MaterialApp(
initialRoute:Provider.of<UserProvider>(context,listen:false).isLogin?'/':'/login',
routes: {
'/':(_)=>HomePage(),
'/donation-history':(_)=>DonationHistoryPage(),
'/login':(_)=>LoginPage(),
'/new-donation':(_)=>NewDonation()
},
debugShowCheckedModeBanner:false,
title: 'RedHero',
theme: ThemeData(
primaryColor: kPrimaryColor,
accentColor: Colors.white,
scaffoldBackgroundColor: kBackgroundColor,
fontFamily: "Poppins",
textTheme: TextTheme(
bodyText1: TextStyle(color: kBodyTextColor)
)
),
),
);
}
【问题讨论】:
-
没关系,但是我最初的问题呢?我找不到错误,我检查了小部件树,并且提供程序位于我所有路线的顶部@Uni
-
上面的小部件属于MyApp @Uni
标签: flutter dart flutter-provider flutter-navigation