类型“ int”不是“函数结果”的类型“ double”的子类型

时间:2020-01-11 19:53:31

标签: flutter flutter-dependencies

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

  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”类型不是“函数结果”的“ double”类型的子类型

1 个答案:

答案 0 :(得分:1)

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

快速直接的解决方案是在将重量初始化为int weight = 0;

的同时更改其重量类型

对于您为什么要将权重初始化为两倍的原因,我有一个要点,因为权重不必是整数。为此,您可能需要将状态设置为double,如下所示:

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

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

与减少重量相同。