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

このページには広告が含まれる場合があります。

 

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

 

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

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

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

‘String’ is not a subtype of type ‘DateTime’ in type cast

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

その場合は、

fromMapメソッドの

postDateTime: map['postDateTime'] as DateTime

の箇所を、DateTime.parseメソッドを使って、一旦String型に型変換したものを解析し、

postDateTime: DateTime.parse(map['postDateTime'] as String)

toMapメソッドの

'postDateTime': this.postDateTime

の箇所を、DateTime#toIso8601Stringメソッドを使って、表記フォーマットをISO形式に変換してやるとうまくいきます。

'postDateTime': this.postDateTime.toIso8601String(),

(詳しくは、以下の動画で解説していますので、よろしければご覧ください)

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

今すぐ無料お試しキットを受け取る

はじめての方へ


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

みんプロ作成アプリ





TOP