🕶️

【Flutter】freezed を久々更新したらビルドできないので対応 

に公開

🚨 概要

freezed利用のFluterアプリで、ライブラリ更新後に、
↓コード生成コマンド実行後に、freezedのクラスで、エラー発生🚨

$ dart run build_runner build --delete-conflicting-outputs

🗒️ 原因

freezedのアップデート(v2 → v3.0.0)で、「abstract」(or sealed)が、定義したクラスの先頭に必須になったため。

→ Migration to 3.0.0 🗒️

💡 対応

import 'package:freezed_annotation/freezed_annotation.dart';

part 'HogeModel.freezed.dart';
part 'HogeModel.g.dart';


///      class HogeModel with _$HogeModel {
abstract class HogeModel with _$HogeModel { /// 💡先頭に「abstract」を追加
  const factory HogeModel({
    required int id,
    required String name,
  }) = _HogeModel;

  const HogeModel._();

  factory HogeModel.fromJson(Map<String, dynamic> json) =>
      _$HogeModelFromJson(json);
}

Discussion