我编写了一些代码,以帮助使用自定义绘画工具可视化百分比,但是有时百分比太小而无法正确显示,因此我决定制作一个可方便地返回一个值的吸气剂,该值将被放入画家。
我尝试过,如您在提供的代码中所看到的那样,进行了检查以检查数据是否尚未加载,并返回'0%',这本来应该起作用的。
double get winPercent {
var initalValue = _stats.winPercent.isNotEmpty ? _stats.winPercent : '0%';
var calculateWinPrcnt = (double.parse(
initalValue.substring(0, _stats.winPercent.length - 1),
) /
100);
if (calculateWinPrcnt < 5) {
return 0.05;
}
return calculateWinPrcnt;
}
如果没有来自API的数据,则getter应该返回'0%',但是我仍然收到输出为null的错误消息
The getter 'winPercent' was called on null.
Receiver: null
Tried calling: winPercent
“ getter'winPercent'被调用为null。”表示_stats
可能为空。您可以这样做:
double get winPercent {
// check for nulls
final initialValue = (_stats?.winPercent?.isNotEmpty ?? false) ? _stats.winPercent : '0%';
final value = initialValue.substring(0, initialValue.length - 1);
final winPrcnt = (double.parse(value) / 100);
if (winPrcnt < 0.05) {
return 0.05;
}
return winPrcnt;
}
var _stats;
if(_stats==null){
_stats = className();
}
这里的问题是WinPercent被调用为On的对象,该对象为null。尝试在调用Api var _stats = YourModelClassName()
之前获取_stats,并在获取Apis响应之后,可以将该响应模型对象分配给_stats。