成员 'value' 只能在具有 flutter GetX 的子类的实例成员中使用

The member 'value' can only be used within instance members of subclasses with flutter GetX

我在这个例子中遇到过这个问题:

class AuthController extends GetxController {

  final storage =  const FlutterSecureStorage();
  var authData = [].obs;
  var isLoading = false.obs;
  var authLoading = false.obs;

  @override
  onInit() {
    authUser();
    super.onInit();
  }

   authUser() async {
     var all =  await storage.readAll();
    authData.value = all.entries
        .map((e) => AuthModel(key: e.key, value: e.value)).toList(growable: false);

  }

   bool isAuth() {
    var a = isLoading.value.isBlank;
  return authData.value.isNotEmpty;
  }

在这一行中:

return authData.value.isNotEmpty;

IDE 在(值)下添加行并警告如下:

The member 'value' can only be used within instance members of subclasses of 'package:get/get_rx/src/rx_types/rx_iterables/rx_list.dart'.

我该如何解决这个问题?或者只是解决它? >>> 提前谢谢你

列表 默认是反应式的。因此,与其他可观察对象不同,您不需要使用 .value 来访问列表。但是你需要在声明的时候使用.obs

或者如果你想对列表也使用 .value,你可以使用类似的东西:

final authData = RxList([]);

更新

无法正常工作的原因:

authData.value = all.entries
    .map((e) => AuthModel(key: e.key, value: e.value)).toList(growable: false);

在设置 RxLists 的值的情况下,您应该像这样在 RxList 上使用 assignAll 方法:

authData.assignAll(all.entries
    .map((e) => AuthModel(key: e.key, value: e.value)).toList(growable: false));