【发布时间】:2020-03-06 14:27:07
【问题描述】:
我设计了我的应用程序,并决定使用路由并使用 firebase 进行身份验证。
如果用户想使用电子邮件登录,在根页面有一些按钮转到EmailLogin页面
在EmailLogin页面如果用户没有注册之前去EmailRegister页面注册。
我使用了 3 次 Navigator.pop(),从堆栈中弹出:EmailRegister、EmailLogin 和 LoginPage
然后按LoggedIn,但是当我按后退按钮时,我看到黑屏。
import 'package:flutter/material.dart';
import 'loginPage.dart';
import 'login-register/emailLogin.dart';
import 'login-register/emailRegister.dart';
import 'login-register/authentication.dart';
import 'logged-in/logged-in.dart';
BaseAuth auth = new Auth();
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
//home: LoginPage(),
initialRoute: '/',
routes: {
// When navigating to the "/" route, build the FirstScreen widget.
'/': (context) => LoginPage(),
'/loggedIn' : (context) => LoggedIn(auth: auth),
'/emailLogin': (context) => EmailLogin(),
'/emailRegister': (context) => EmailRegister(auth: auth),
//'/emailRegister': (context) => EmailRegister(),
},
);
}
}
我改变了想法并决定为根路由设计HomePage,如果用户登录用户请查看LoggedIn页面,否则请查看loginPage,但我需要将setstate发送到HomePage小部件但我如何发送 ?因为页面堆栈看起来像这样:root -> login -> register
我每页都发送回调或者我需要做什么?
【问题讨论】:
标签: flutter