【问题标题】:Pass argument with getx on flutter在颤振上使用 getx 传递参数
【发布时间】:2021-09-12 22:49:33
【问题描述】:

我正在使用 getx 在页面之间导航。我想将我的虚拟字符串发送到新页面:这是我的方法:

   Future<dynamic> navigateWithTransition(Widget page,
      {dynamic arguments}) {
    return Get.to(() => page,
        arguments: arguments);
  }

现在我将我的论点传递给这样的新页面:

_navigatorService.navigateWithTransition(
  const PersonalInfoDegreePage(),
  arguments: "test",
);

但在 PersonalInfoDegreePage 页面中

class PersonalInfoDegreePage extends StatelessWidget {
  const PersonalInfoDegreePage({Key key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    log.info(Get.arguments);
    return Scaffold(

我得到的 Get.arguments 等于 null。我怎么了?

$ flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 2.0.6, on Linux, locale en_US.UTF-8)
[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
[✓] Chrome - develop for the web
[✓] Android Studio
[✓] VS Code (version 1.57.1)
[✓] Connected device (2 available)

• No issues found!

【问题讨论】:

    标签: flutter flutter-getx


    【解决方案1】:

    这对我来说很好。不确定 .info 方法在您的日志中来自哪里,也许它是一个外部包。但如果你只是使用'dart:developer' 导入并使用log(Get.arguments); 或常规print,都打印出'test'。

    我要补充的唯一另一件事是,您不需要在该函数中返回未来,它可以是无效的。

      void navigateWithTransition(Widget page, {dynamic arguments}) {
        Get.to(() => page, arguments: arguments);
      }
    

    【讨论】:

    • log.info 是记录器库。我认为我的 null 与 Future&lt;dynamic&gt; 无关。但是我使用了 print print(Get.arguments); 而不是 .info。我仍然得到 null @Loren.A
    • _navigatorService是getIt注入的,是lazySingleton。我在这个类中写了navigateWithTransition。我不认为这部分与 null 相关,因为 navigateWithTransition 工作,我可以用 @Loren.A 更改页面
    猜你喜欢
    • 2021-03-02
    • 2022-01-05
    • 2021-10-05
    • 2022-08-19
    • 1970-01-01
    • 2021-12-01
    • 2021-06-08
    • 2021-10-15
    • 2021-11-19
    相关资源
    最近更新 更多