0

我想遵循如何使用此处描述的 onGenerateRoute 函数将参数传递给命名路由的官方示例:https ://docs.flutter.dev/cookbook/navigation/navigate-with-arguments#alternatively-extract-the-arguments-使用-ongenerateroute

但我无法弄清楚如何使用 Getx 来完成它,这就是我所拥有的:

主要的

Widget build(BuildContext context) {
    return GetMaterialApp(
      initialRoute: '/list',
      onGenerateRoute: (settings) {
        switch (settings.name) {
          case '/form':
          final args = settings.arguments as FormScreenArguments;

          return GetPageRoute(
            routeName: '/form',
            page: () => FormScreen(producto: args.producto),
            binding: BindingsBuilder(() {
              Get.lazyPut<FormController>(() => FormController());
            }),
          );
        }
      },
      getPages: [
        GetPage(
          name: '/list',
          page: () => const ListScreen(),
          binding: BindingsBuilder(() {
            Get.lazyPut<ListController>(() => ListController(), fenix: true);
          }),
        ),
      ],
    );
  }

我导航到表单屏幕的方式:

Navigator.pushNamed(
    context,
    '/form',
    arguments: FormScreenArguments(
      producto: _px.products.elementAt(index)
    ),
);

我收到此错误: “发生异常 。_CastError(空值检查运算符用于空值)”

我使用 print 检查发生了什么,但那些从未进入 onGenerateRoute 函数。

我做错了什么或应该怎么做?

4

0 回答 0