我是新手。卡在下面的问题中。
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”类型的子类型
答案 0 :(得分:1)
错误语句本身在这里给出了答案,基本上它说的是您要设置的状态为int类型,并且它(dart编译器)期望它的类型为double。它假定,因为您已将重量类型定义为双精度。 (double weight = 0;
)。
快速直接的解决方案是在将重量初始化为int weight = 0;
对于您为什么要将权重初始化为两倍的原因,我有一个要点,因为权重不必是整数。为此,您可能需要将状态设置为double,如下所示:
首先将权重初始化为double weight = 0.0;
,然后将函数修改为:
weightIncrement() {
setState(() {
weight += 1.0;
}
}
与减少重量相同。