[英]How to pass multiple data fetched from json to next screen in flutter?
[英]How to pass value next screen using navigatorKey in flutter?
我正在使用 bloc state 管理。 並使用NavigatorState
導航屏幕,但現在需要將值傳遞到下一個屏幕,但在這里,不知道如何使用 NavigatorState 將值傳遞到屏幕。
class AppView extends StatefulWidget {
@override
_AppViewState createState() => _AppViewState();
}
class _AppViewState extends State<AppView> {
final _navigatorKey = GlobalKey<NavigatorState>();
NavigatorState get _navigator => _navigatorKey.currentState;
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
theme: theme,
navigatorKey: _navigatorKey,
builder: (context, child) {
return BlocListener<AuthenticationBloc, AuthenticationState>(
listener: (context, state) {
switch (state.status) {
case AuthenticationStatus.authenticated:
_navigator.pushAndRemoveUntil<void>(
Home.route(),
(route) => false,
);
// Navigator.of(context).pushAndRemoveUntil(
// MaterialPageRoute(builder: (context)=>
// Home( currentUser:state.user)), (route) => false);
break;
case AuthenticationStatus.unauthenticated:
_navigator.pushAndRemoveUntil<void>(
AuthPage.route(), //LoginPage
(route) => false,
);
break;
case AuthenticationStatus.unknown:
_navigator.pushAndRemoveUntil<void>(
SplashPage.route(),
(route) => false,
);
break;
default:
break;
}
},
child: child,
);
},
onGenerateRoute: (_) => SplashPage.route(),
);
}
}
上面注釋的代碼不起作用,出現異常
Unhandled Exception: Navigator operation requested with a context that does not include a Navigator.
試試_navigator.currentState.pushAndRemoveUntil
我通過替換這個找到了解決方案:
_navigator.pushAndRemoveUntil<void>(
Home.route(),
(route) => false,
);
有了這個:
_navigator.pushAndRemoveUntil( MaterialPageRoute(builder: (context)=>
Home( currentUser:state.user)), (route) => false);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.