ModalRoute.of(context).settings.arguements 始终为 null

ModalRoute.of(context).settings.arguements always null

提问人:Beatle Refractor 提问时间:8/10/2023 更新时间:8/13/2023 访问量:32

问:

导航到包含数据的 DetailScreen Navigator.of(context).pushNamed('/detailScren', arguments: “data”);

DetailScreen:在这里,我从模态路由中得到 null。

class DetailScreen extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
      final arguments = ModalRoute.of(context)!.settings.arguements;
      print(arguments); //  always null
      return Scaffold(
        body: Container(),
      );
  }

以下是 main.dart 中的应用代码

class App extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      localizationsDelegates: context.localizationDelegates,
      supportedLocales: context.supportedLocales,
      locale: context.locale,
      title: Strings.appName,
      theme: CustomTheme.lightTheme,
      onGenerateRoute: AppRoutes.generateRoute,
      home: MainScreen(),
    );
  }

传递和接收参数。

flutter null

评论


答:

0赞 Milton Bueno 8/10/2023 #1

你写了

ModalRoute.of(context)!.settings.arguements;

这是一个错别字:参数,而不是参数。

1赞 Alberto Fecchi 8/10/2023 #2

该方法不同于将参数直接传递到路由。您应该直接在以下位置管理参数:https://docs.flutter.dev/cookbook/navigation/navigate-with-arguments#alternatively-extract-the-arguments-using-ongeneraterouteonGenerateRouteonGenerateRoute