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); }
}
作り方はわかった、使い方はまだ理解浅い。
この記事が気に入ったらサポートをしてみませんか?