成员 '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));
我在这个例子中遇到过这个问题:
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));