【问题标题】:Rx<User>() missing argument - Flutter / GetXRx<User>() 缺少参数 - Flutter / GetX
【发布时间】:2021-07-04 11:52:01
【问题描述】:

在类上使用 GetxController 并使用 Rx 获取 FirebaseUser 时,我收到了一个错误,即我缺少位置参数

class AuthController extends GetxController {
  FirebaseAuth _auth = FirebaseAuth.instance;
  Rx<User> _firebaseUser = Rx<User>();
  User get user => _firebaseUser.value;

在这个来自 package:firebase_auth/firebase_auth.dart 的 Rx() 上,我得到了错误:

需要 1 个位置参数,但找到了 0 个。 尝试添加缺少的 arguments.dartnot_enough_positional_arguments

启动模拟器后,我得到这个更详细的错误:

lib/core/controllers/auth_controller.dart:9:36:错误:位置参数太少:需要 1,给定 0。 Rx _firebaseUser = Rx();

../../../snap/flutter/common/flutter/.pub-cache/hosted/pub.dartlang.org/get-4.1.3/lib/get_rx/src/rx_types/ rx_core/rx_impl.dart:324:3: 上下文:找到了这个候选人,但参数不匹配。 Rx(T initial) : super(initial);

我在这里找不到我应该添加的内容,而且我看到的每个教程都没有在这里指定任何参数。 有谁知道这个问题吗?

【问题讨论】:

    标签: firebase flutter flutter-getx


    【解决方案1】:

    如果您以空安全运行,请尝试

     Rxn<User> firebaseUser = Rxn<User>();
    

    https://pub.dev/documentation/get/latest/get_rx/get_rx-library.html

    【讨论】:

      【解决方案2】:

      这可能与您创建自定义可观察对象的方式有关。如果您查看GetX docs,这是建议的方式来做您正在做的事情。在该页面上搜索“模型”。

      class AuthController extends GetxController {
        FirebaseAuth _auth = FirebaseAuth.instance;
        final firebaseUser = User().obs;
      }
      

      还要注意,在这里使用 getter 和 setter 是没有价值的。 See this link for an explanation as to why

      如果这不能解决问题,请尝试分享您的 User 类和 Getx 类的其余部分,以及您尝试从外部访问 firebaseUser 的方式。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-10-21
        • 2022-12-01
        • 2021-08-25
        • 2018-09-23
        • 1970-01-01
        • 1970-01-01
        • 2022-06-27
        相关资源
        最近更新 更多