1. ホーム
  2. dart

[解決済み] リスト firstWhere Bad state: 要素なし

2022-06-21 15:07:33

質問

走っています list.firstWhere で、これは時々例外を投げています。

Bad State: No element

When the exception was thrown, this was the stack:
#0      _ListBase&Object&ListMixin.firstWhere (dart:collection/list.dart:148:5)

私はこれが何を意味するのか理解できませんが、また、見ることによって問題を特定することができませんでした。 げんきょうで .

私の firstWhere はこのようになります。

list.firstWhere((element) => a == b);

どのように解決するのですか?

これは、一致する要素がないとき、つまり、次のようなときに起こります。 a == b のどの要素に対しても真になることはない。 list その 任意パラメータ orElse が指定されていない場合。

を指定することもできます。 orElse に対応するためです。

list.firstWhere((a) => a == b, orElse: () => print('No matching element.'));

戻る場合は null の代わりに、一致するものがない場合に、そのようにすることもできます。 orElse :

list.firstWhere((a) => a == b, orElse: () => null);


package:collection の便利な拡張メソッドも含まれています。 null の場合(NULLセーフティでもうまくいくはずです)。

import 'package:collection/collection.dart';

list.firstWhereOrNull((element) => element == other);

参照 firstWhereOrNull をご覧ください。ありがとうございました。 EdwinLiu ご指摘ありがとうございます。