类型 'int' 不是 'function result' 的类型 'double' 的子类型

type 'int' is not a subtype of type 'double' of 'function result'

我是 Flutter 新手。卡在下面的问题中。

  double weight = 0;

  weightIncrement() {
    setState(() {
      weight += 1;
    });
  }

  weightDecrement() {
    setState(() {
      weight -= 1;
    });
  }
      Text(
        cardType == CardType.age ? "$age".toString() : "$weight".toString())

在某些按钮上使用上面的方法。并将值设置为 Text 会引发以下错误。 I/flutter (22691):构建计算器时引发了以下断言(脏,状态:_CalculatorState#82a4b): I/flutter (22691): 'int' 类型不是 'function result'

类型 'double' 的子类型

错误语句本身在这里给出了答案,基本上它说的是你试图设置的状态是 int 类型并且它(dart 编译器)期望它是 double 类型。它假定因为您已将权重类型定义为双精度类型。 (double weight = 0;).

快速直接的解决方案是在初始化时更改权重类型:int weight = 0;

我明白你为什么要将权重初始化为双精度值,因为权重不一定是整数。为此,您可能需要按如下方式设置双精度状态:

首先将权重初始化为 double weight = 0.0; 然后将您的函数修改为:

   weightIncrement() {
      setState(() {
        weight += 1.0;
      }
   }

减重也一样。