Flutter Freezed!

Freezedが便利らしい。
toStringが入っていたり、copywithでクラスを不変にしたり、コンストラクター作ったり、json使うのが楽らしい。
下記で、必要なコードをいろいろと自動生成して使用する。

flutter pub run build_runner build --delete-conflicting-outputs

基本の使い方は、

part 'user.freezed.dart';

@freezed
class User with _$User {
 const factory User({required String name,required int age}) = _User;
}

この後、最初のコードを実行するとuser.freezed.dartが自動生成される。
使うときは、

final user = User(name: '抹茶', age: 99);
final userno2 = user.copyWith(age: 120)

とするようだ。
わからないところを確認していく。

part
part.ofとセット。partの一部ですよという意味の、part.of

_$User
これは後で自動生成される。

factory
ファクトリーコンストラクタのこと。どうもJsonを使うことが関わっている。コンストラクターないはthis.とは書かない、freezedが後ほどやる。

Json用メソッドを使うために、
factory User.fromJson(Map<String, dynamic> json) => _$UserFromJson(json); }
を追記する。

part 'user.freezed.dart';
part 'user.g.dart';

@freezed
class User with _$User {
 const factory User({required String name,required int age}) = _User;

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

}

作り方はわかった、使い方はまだ理解浅い。

この記事が気に入ったらサポートをしてみませんか?