如何修复Dart中的吸气剂返回“ null”?

时间:2019-10-05 12:22:49

标签: flutter dart

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

正如您在所提供的代码中所看到的那样,我尝试进行检查以检查数据是否尚未加载,并返回“ 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尚无数据,则吸气剂应返回'0%',但我仍然收到输出为空的错误

The getter 'winPercent' was called on null.
Receiver: null
Tried calling: winPercent

2 个答案:

答案 0 :(得分: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;
}

答案 1 :(得分:0)

var _stats;

if(_stats==null){

_stats = className();

}

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