标签: flutter-go-router

Flutter Go Router 中 Navigator 参数的等效项

就 Go Router 而言,下面的 Flutter Navigator 相当于什么?

    Navigator.pushNamed(
       context,
       Routes.CHANNEL_PAGE,
       arguments:ChannelPageArgs(
         channel:channel,
          initialMessage:message,
        ),
    );
Run Code Online (Sandbox Code Playgroud)

通常 Go Router 基于路径中的参数。但上面的例子是基于对象而不是原始参数。

        GoRoute(
          path: '/profile/:id',
          builder: (context, state) => ProfilePage(id: state.params['id']!),
        ),
Run Code Online (Sandbox Code Playgroud)

routes dart flutter gorouter flutter-go-router

2
推荐指数
1
解决办法
4236
查看次数

showModalBottomSheet 在嵌套 go 路由器导航中无法正常工作

我正在使用go_router包进行Navigation 2.0,但是在运行showModalBottomSheetFunction时,视图未正确显示。这是图片: 在此输入图像描述

顺便说一句,我在底部导航栏使用嵌套导航。

我期望 ModalBottomSheet 应该看起来合适。

dart flutter flutter-showmodalbottomsheet flutter-go-router

2
推荐指数
1
解决办法
3069
查看次数

没有为“GoRouterState”类型定义 getter 'params' Flutter

我正在尝试使用 getter 解决问题,错误消息:

没有为类型“GoRouterState”定义 getter“params”。尝试导入定义“params”的库,将名称更正为现有 getter 的名称,或者定义名为“params”的 getter 或字段。

我的 main.dart 代码如下所示:

                      GoRoute(
                path: 'session/:level',
                pageBuilder: (context, state) {
                  final levelNumber = int.parse(state.params['level']!);
                  final level = gameLevels
                      .singleWhere((e) => e.number == levelNumber);
                  return buildMyTransition<void>(
                    child: PlaySessionScreen(
                      level,
                      key: const Key('play session'),
                    ),
                    color: context.watch<Palette>().backgroundPlaySession,
                  );
                },
              ),
Run Code Online (Sandbox Code Playgroud)

GoRouterState在另一个文件中定义:

    class ProductCategoryList extends StatelessWidget {
    const ProductCategoryList({super.key});
    @override
    Widget build(BuildContext context) {
    final GoRouterState state = GoRouterState.of(context);
    final Category category = Category.values.firstWhere(
    (Category value) => value.toString().contains(state.params['category']!),
    orElse: () => Category.all,
    );
    final …
Run Code Online (Sandbox Code Playgroud)

getter flutter flutter-go-router

2
推荐指数
2
解决办法
4052
查看次数

Futurebuilder 内的导航

我正在尝试在 futurebuilder 中登录后进行导航。api 请求成功完成,但测试时导航出错。帮助我如何正确使用 futurebuilder。

child: ElevatedButton(
                onPressed: () {
                  // Validate returns true if the form is valid, or false otherwise.
                  if (_mobileKey.currentState!.validate()) {
                    FutureBuilder<Loginuser>(
                      future: loginuser(mobileController.text.toString(),
                          passwordController.text.toString()),
                      builder: (context, snapshot) {
                        if (snapshot.hasData) {
                          context.go('/Home');
                          return Text(snapshot.data!.message);
                        } else if (snapshot.hasError) {
                          return Text('${snapshot.error}');
                        }

                        // By default, show a loading spinner.
                        return const CircularProgressIndicator();
                      },
                    );
                  }

                  context.go('/Home');
                },
                child: const Text('Submit')),
Run Code Online (Sandbox Code Playgroud)

我试过这个它不起作用。我使用“ go_router: ^5.2.4 ”进行导航

routes flutter flutter-futurebuilder flutter-go-router

1
推荐指数
1
解决办法
1235
查看次数

用go_router推送透明页面?

为了显示一个覆盖我的 shellroute 的抽屉,我需要将一个半透明页面推到我的页面堆栈顶部。到目前为止,当我使用时背景仍然不透明

GoRouter.of(rootNavigatorKey.currentContext!).pushNamed('myDrawer');
Run Code Online (Sandbox Code Playgroud)

我发现了一个使用传统 Navigator 和 PageRouteBuilder 的诡计:

 Navigator.of(rootNavigatorKey.currentContext!).push(
                    PageRouteBuilder(
                      fullscreenDialog: true,
                      opaque: false,
                      pageBuilder: (_, __, ___) => MyDrawer(),
                    ),
                  );
Run Code Online (Sandbox Code Playgroud)

在推送路由时,有没有办法在 go_router 中使用像不透明参数这样的选项?

flutter flutter-go-router

1
推荐指数
1
解决办法
972
查看次数