[Flutter]「Dart Data Class Plugin」でList型を扱う場合の注意点

(DateTime型を扱う場合の注意点はこちら)

 

データクラスとしてあったら便利なメソッド群(copyWith・fromJson・toJsonなど)を、コマンド一発で自動生成してくれる「Dart Data Class Plugin」という、Android Studio付属の非常に便利なプラグイン(≠パッケージ)があります。

blank

これを使って、List型のデータを変換させると、「fromMap」メソッド及び「toMap」メソッドはこのような感じになりますが、

blank

そのままの状態で、CloudFirestoreデータベース等での読み書きを実行すると、

‘List<dynamic>’ is not a subtype of type ‘List<String>’ in type cast

というエラーが出て、うまくいかないことがあります。

blank

その場合は、

fromMapメソッドの

dataList: map['dataList'] as List

の箇所を、

  • 一旦List<dynamic>型に変換してから、
  • List#mapメソッドを使って、Listの各要素をdynamic型から目的の型(この例の場合はString)へ変換
dataList: (map['dataList'] as List).map((e) => e as String).toList()

してやるとうまくいきます。

blank

(詳しくは、以下の動画で解説していますので、よろしければご覧ください(List#mapメソッドに関する解説も詳しくしています)

blank

こんな記事も読まれています

今すぐプレゼントを受け取る(約6時間のFlutter初級編体験版動画講座を無料でプレゼント)
blank

はじめての方へ

blank
みんプロ式プログラミング講座体系・ラインナップ
みんプロ式プログラミング講座受講の流れ(割引特典利用方法)
サイトマップ(みんプロHPコンテンツ一覧)
運営会社概要

おすすめコンテンツ

プログラミングを学ぶとどんないいことがあるのか
みんプロ式を選んでいただける6つの理由
ぼくの人生挫折ヒストリー(代表者プロフィール)
ぼくのプログラミング挫折ヒストリー(無料メール講座・6大特典付き)
今最も注目のアプリ開発ツール「Flutter(フラッター)」ミニ動画講座

みんプロ式動画講座(コア・Flutter)

ゼロからのFlutter(初級編)-はじめてのプログラミングからアプリリリースまで-
Flutter中級編1-Web通信・設計・状態管理・DIの基礎-
Flutter中級編2-Firebase/地図・カメラ連携等の基礎-
Flutter中級編3-広告/アプリ内課金等の基礎-
Flutter中級編4-Webアプリとレスポンシブデザインの基礎-

みんプロ式動画講座(サテライト)

Flutter/Dartトラブルシューティング・小ネタ集(コア初級編受講で無料プレゼント)
ゼロからのGit・GitHub(コマンドラインツールを極力使わないバージョン管理入門)
Flutter/Dartにおける設計・状態管理・DIの解説集
Dart逆引き大辞典
Flutterにおけるテストの基礎
blank
blank

みんプロ作成アプリ

blank
blank
blank
blank

TOP