如何修复吸气剂在Dart中返回'null'?

问题描述 投票:1回答:2

我编写了一些代码,以帮助使用自定义绘画工具可视化百分比,但是有时百分比太小而无法正确显示,因此我决定制作一个可方便地返回一个值的吸气剂,该值将被放入画家。

我尝试过,如您在提供的代码中所看到的那样,进行了检查以检查数据是否尚未加载,并返回'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
flutter dart
2个回答
0
投票

“ 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;
}

0
投票
var _stats;

if(_stats==null){

_stats = className();

}

这里的问题是WinPercent被调用为On的对象,该对象为null。尝试在调用Api var _stats = YourModelClassName()之前获取_stats,并在获取Apis响应之后,可以将该响应模型对象分配给_stats。

© www.soinside.com 2019 - 2024. All rights reserved.