You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter墙面涂料用量计算出现空对象赋值错误

问题分析

报错信息:

The setter 'value=' was called on null.
Receiver: null
Tried calling: value=3000.0

直接点出问题:你只声明了var area;但未初始化,它的默认值是null,当执行area.value = (height * length);时,试图给null的value属性赋值,触发了这个错误。

另外你的判断逻辑也有问题:if (WallheightController.text.isNotEmpty || WalllengthController.text.isNotEmpty )用了逻辑或(||),这意味着只要一个输入框有内容就会进入计算,但此时另一个输入框为空,double.parse会抛出格式错误,应该改成逻辑与(&&)确保两个输入都不为空。

修复方案
  1. 将area初始化为RxDouble类型,和paint、result保持一致:
RxDouble area = 0.0.obs;
  1. 修改判断条件为逻辑与:
if (WallheightController.text.isNotEmpty && WalllengthController.text.isNotEmpty )
修复后的完整代码
final WallheightController = TextEditingController();
final WalllengthController = TextEditingController();
var height;
var length;
RxDouble area = 0.0.obs;
RxDouble paint = 0.2.obs;
RxDouble result = 0.0.obs;

calculatepaint() {
  if (WallheightController.text.isNotEmpty &&
      WalllengthController.text.isNotEmpty ) {
     height = double.parse(WallheightController.text);
     length = double.parse(WalllengthController.text);

    area.value = (height * length);
    result.value = area.value * paint.value;

    Get.toNamed(RoutesClass.prcalculation);
   } else {
    Get.snackbar("Fields empty", "Fill Required fields");
  }
}

clear() {
  WallheightController.clear();
  WalllengthController.clear();
}

内容的提问来源于stack exchange,提问作者Huzaifa Arshad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 10:25:17