【Flutter】The getter ‘length’ was called on null. エラーの解消法

記事内に商品プロモーションを含む場合があります

技術メモ

Flutterを使用してアプリ開発を行っている際に以下のエラーが発生しました。

 

 

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

 

今回は上記のエラーの解消法を記載します。

 

開発環境

  • MacBook Pro (macOS Catalina バージョン10.15.1)
  • Flutter 1.12.13+hotfix.5 channel stable
  • Dart 2.7.0

 

 

ListViewを使用した際に「The getter 'length' was called on null.」エラーが発生

以下のコードがあるとします。(他ファイルは省略)

※契約しているサブスクリプションサービスを一覧表示するアプリです。

 

DBから取得したレコードをListViewを用いて、リストで表示します。

 

このままでは画面上にリスト表示することはできますが、flutter runでアプリを実行した際に

 

 

このようなエラーが発生しました。

 

【解消法】値がNullの場合の分岐処理を記載しておく

結論から言うと、取得した値(この場合subscriptions)がNullの場合の処理を記載することで解消できます。

 

return subscriptions == null
    ? Container()
    : ListView.builder(
        itemCount: subscriptions.length,
        itemBuilder: (context, index) {
            returnSubscriptionTile(subscription: subscriptions[index]);
        },
     );

 

ファイル全体は以下のようになります。

 

 

エラーの発生原因

アプリをビルドした後、DBからデータを取得するまでにラグがあるため最初のsubscriptionsの値はNullになります。

そのため「The getter 'length' was called on null.」エラーが発生していたようです。

 

subscriptionsがNullの場合、lengthを使用しないようにすることでエラーを回避できます。

 

 

 

日本語でFlutterの概要を知るなら以下の書籍がオススメです。

技術メモ
スポンサーリンク
スポンサーリンク
のすけをフォローする
やばブロ!

コメント