はじめに
プチ記事というか、私的なメモ、備忘録に近い内容ですが、同じくエラーに困っている方がいればとおもい公開しておきます。
Flutterで開発中に、「Bad state: No element」というエラーが出たのですが、スタックトレースを遡っても原因がよくわからなかったので、手当たり次第にググって解決法を見つけました。
同じく原因わからない方の参考になれば幸いです。
解決法
解決法というかエラーの原因ですが、List
でfirstWhere
を使っている箇所でリストが空の場合や一致する要素がない場合に発生するようです。
→ 参考記事
なので、私の場合、怪しい個所を探して、リストが空の場合にガードする処理を入れて防ぎました。
参考記事によると、orElse
を指定すると大丈夫みたいです。
list.firstWhere((a) => a == b, orElse: () => print('No matching element.'));
また、下記のような拡張メソッドもあるみたいです。
import 'package:collection/collection.dart';
list.firstWhereOrNull((element) => element == other);