dart Flutter 布线不布线

b4wnujal  于 2023-02-27  发布在  Flutter
关注(0)|答案(1)|浏览(129)

我正在构建一个亚马逊克隆应用程序,目前正在构建应用程序的注册功能。我遇到了以下问题,当我作为一个用户注册一个帐户并点击注册时,什么都没有发生。代码是如何设置的,它应该重新返回到登录页面:
这是密码:

`Navigator.pushReplacement(
                                        context,
                                        MaterialPageRoute(
                                            builder: (_) =>
                                                const SignInScreen()));

它应该从注册页面路由到登录页面,但没有这样做。
我尝试使用MaterialPageRoute to the SigninScreen创建一个从注册按钮返回到注册屏幕的路径。它加载了一秒钟,然后停止并停留在同一个注册屏幕。同时仍然将帐户添加到firebase数据库。

6ie5vjzr

6ie5vjzr1#

您是否已在项目中创建AppRouter类以满足导航需求?如果尚未创建,建议您按以下方式创建:

import 'package:flutter/material.dart';

import 'screens/home_screen.dart';
import 'screens/login_screen.dart';
import 'screens/settings_screen.dart';

class AppRouter {
  static Route<dynamic> generateRoute(RouteSettings settings) {
    switch (settings.name) {
      case '/':
        return MaterialPageRoute(builder: (_) => HomeScreen());
      case '/login':
        return MaterialPageRoute(builder: (_) => LoginScreen());
      case '/settings':
        return MaterialPageRoute(builder: (_) => SettingsScreen());
      default:
        return MaterialPageRoute(builder: (_) {
          return Scaffold(
            body: Center(
              child: Text('No route defined for ${settings.name}'),
            ),
          );
        });
    }
  }
}

要在您的应用中使用此应用路由器类,您可以定义一个MaterialApp,并将onGenerateRoute属性设置为AppRouter.generateRoute,如下所示:

import 'package:flutter/material.dart';

import 'app_router.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'My App',
      onGenerateRoute: AppRouter.generateRoute,
    );
  }
}

当您导航到应用中的某个屏幕时(例如,通过调用Navigator.pushNamed(context,'/login')),将调用onGenerateRoute方法,并显示相应的屏幕。

相关问题