freezedの処理としては成功しているけど、xxx.g.dart、つまりはjson_serializedのファイルが生成されない。でもエラーが出ないので何が間違っているかがわからないということがありました。これは、そもそも「生成の指示が適切にできていない」ことが問題です。以下は、この問題を解決するためのチェックリストです。
part 'message.g.dart';
は書いているか
import 'package:freezed_annotation/freezed_annotation.dart';
import 'package:meta/meta.dart';
part 'message.freezed.dart';
part 'message.g.dart'; // ←これ
@freezed
abstract class Message with _$Message {
factory Message(
{@required String username,
@required String body,
@required DateTime createdDate}) = _Message;
factory Message.fromJson(Map<String, dynamic> json) =>
messageConverter.fromJson(json);
static const messageConverter = MessageConverter();
}
json_serializableをpubspec.yamlに書いているか
これで15分くらい詰まりました。
pubspec.yaml
dependencies:
flutter:
sdk: flutter
flutter_localizations:
sdk: flutter
freezed: ^0.11.6
json_serializable: ^3.3.0 # ←これ