我想遵循如何使用此处描述的 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 函数。
我做错了什么或应该怎么做?