gpt4 book ai didi

flutter - 如何根据bool值在Auth屏幕和Home屏幕之间切换?

转载 作者:行者123 更新时间:2023-12-03 03:03:41 25 4
gpt4 key购买 nike

我想根据下面模型类的 bool(boolean) 值(user.status)在登录屏幕和主屏幕之间切换

class User extends ChangeNotifier {
int phoneNumber;
bool status = false;
notifyListeners();
}
bool(boolean) User.status值从以下功能翻转
User _user = Provider.of<User>(context);
...
...
if (form.validate()) {

_user.status = true;
}
下面的函数必须侦听User模型中状态值的更改,并将屏幕更改为Home()。
class Wrapper extends StatelessWidget {
@override
Widget build(BuildContext context) {
User authStatus = Provider.of<User>(context);
return authStatus.status ? Home() : Auth();
}
}
我没有任何错误,所有值都在相应地更新,但是在侦听ChangeNotifier的更改后未重建Wrapper()

最佳答案

这是我使用Provider的方法:

routes: {
"/": (context) => MainPage(),
"/detail": (context) => UserDetailPage(),
},
builder: (context, child) {
return Consumer<UsersProvider>(
child: child,
builder: (context, provider, child) {

final value = provider.user;
if (!value.status) {
return Navigator(
onGenerateRoute: (settings) => MaterialPageRoute(
settings: settings, builder: (context) => LoginPage()),
);
}

return MultiProvider(
providers: [
ChangeNotifierProvider(create: (context) => UsersProvider()),
ChangeNotifierProvider(
create: (context) => InvoicesProvider()),
ChangeNotifierProvider(create: (context) => EventsProvider()),
],
child: child,
);
},
);
},
基本上在main.dart中使用builder并定义路由,然后在builder use内使用Consumer is child是初始路由 MainPage(),因此,如果用户已经登录,则他们将转到那里,否则,将基于状态将其重定向到 LoginPage()。希望您能理解,随时发表评论

关于flutter - 如何根据bool值在Auth屏幕和Home屏幕之间切换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63468756/

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