GETX Error: Conditions must have a static type of 'bool'
GETX Error: Conditions must have a static type of 'bool'
首先,我正在使用 getx 状态管理。从 API 接收数据时可能会有延迟。
所以我尝试使用循环进度指示器但出现错误。
error: Conditions must have a static type of 'bool'. (non_bool_condition at [app] lib\screens\app\app.dart:56)
import 'package:get/get.dart';
class LoadingController extends GetxController {
late RxBool isLoading;
void getLoading() {
isLoading = true.obs;
Future.delayed(const Duration(seconds: 2), () {
isLoading = false.obs;
});
}
@override
void onInit() {
getLoading();
super.onInit();
}
}
所有页面均由无状态小部件组成
LoadingController loading = Get.put(LoadingController());
child: loading.isLoading
? Center(
child: CircularProgressIndicator(),
)
: Container(
decoration: BoxDecoration(
color: cCardColor,
borderRadius: BorderRadius.circular(8.r),
),
我不想全状态翻页,但我找不到办法
发生此错误是因为您定义了一个可观察变量,但像普通变量一样使用并为其赋值
您使用了 Observable
变量,因此您必须使用 Obx
或 GetX
小部件来重建 UI。
像这样更改 UI 代码:
LoadingController loading = Get.put(LoadingController());
child: Obx(()=>loading.isLoading.value
? Center(
child: CircularProgressIndicator(),
)
: Container(
decoration: BoxDecoration(
color: cCardColor,
borderRadius: BorderRadius.circular(8.r),
),
),
另外,控制器也有问题。请检查以下代码。
import 'package:get/get.dart';
class LoadingController extends GetxController {
RxBool isLoading = false.obs;
void getLoading() {
isLoading(true);
Future.delayed(const Duration(seconds: 2), () {
isLoading(false);
});
}
@override
void onInit() {
getLoading();
super.onInit();
}
}
首先,我正在使用 getx 状态管理。从 API 接收数据时可能会有延迟。 所以我尝试使用循环进度指示器但出现错误。
error: Conditions must have a static type of 'bool'. (non_bool_condition at [app] lib\screens\app\app.dart:56)
import 'package:get/get.dart';
class LoadingController extends GetxController {
late RxBool isLoading;
void getLoading() {
isLoading = true.obs;
Future.delayed(const Duration(seconds: 2), () {
isLoading = false.obs;
});
}
@override
void onInit() {
getLoading();
super.onInit();
}
}
所有页面均由无状态小部件组成
LoadingController loading = Get.put(LoadingController());
child: loading.isLoading
? Center(
child: CircularProgressIndicator(),
)
: Container(
decoration: BoxDecoration(
color: cCardColor,
borderRadius: BorderRadius.circular(8.r),
),
我不想全状态翻页,但我找不到办法
发生此错误是因为您定义了一个可观察变量,但像普通变量一样使用并为其赋值
您使用了 Observable
变量,因此您必须使用 Obx
或 GetX
小部件来重建 UI。
像这样更改 UI 代码:
LoadingController loading = Get.put(LoadingController());
child: Obx(()=>loading.isLoading.value
? Center(
child: CircularProgressIndicator(),
)
: Container(
decoration: BoxDecoration(
color: cCardColor,
borderRadius: BorderRadius.circular(8.r),
),
),
另外,控制器也有问题。请检查以下代码。
import 'package:get/get.dart';
class LoadingController extends GetxController {
RxBool isLoading = false.obs;
void getLoading() {
isLoading(true);
Future.delayed(const Duration(seconds: 2), () {
isLoading(false);
});
}
@override
void onInit() {
getLoading();
super.onInit();
}
}