【问题标题】:Flutter StateError (Bad state: No element)Flutter StateError(坏状态:无元素)
【发布时间】:2022-07-01 22:22:17
【问题描述】:

我收到此错误:

StateError (Bad state: No element)

肯定有可能用 orElse 添加一个空检查,但我不明白怎么做。

这是我的代码:

class RangeSmallPink {
  final int a;
  final int b;

  const RangeSmallPink(this.a, this.b);
  bool includes(int value) => value >= a && value <= b;
}


const xRangesSmallPink = [
  RangeSmallPink(10, 15),
  RangeSmallPink(16, 20),
  RangeSmallPink(21, 25),
  RangeSmallPink(26, 30),
  RangeSmallPink(31, 35),
  RangeSmallPink(36, 40),
  RangeSmallPink(41, 45),
  RangeSmallPink(46, 50)
];

int getIndexSmallPink(int value, List<RangeSmallPink> ranges) {
  return ranges.indexOf(ranges.firstWhere((range) => range.includes(value)));
}

【问题讨论】:

    标签: flutter


    【解决方案1】:

    ranges.firstWhere((range) 如果找不到元素,可能会抛出 StateError。

    如果没有元素满足测试,则调用 orElse 的结果 返回函数。如果省略 orElse,则默认抛出 StateError

    https://api.dart.dev/stable/2.17.5/dart-core/Iterable/firstWhere.html

    确保可以找到满足条件的元素。

    【讨论】:

      猜你喜欢
      • 2023-01-25
      • 2021-08-16
      • 2019-02-20
      • 2021-04-11
      • 1970-01-01
      • 1970-01-01
      • 2020-10-08
      • 1970-01-01
      • 2022-11-03
      相关资源
      最近更新 更多