如何解决Flutter不可变:使用`freezed` +`kt_dart`重建不可变集合
我有几个freezed
模型:
@freezed
abstract class User with _$User {
factory User({
@required KtMap<int,House> houses,}) = _User;
}
@freezed
abstract class House with _$House {
factory House({
@required KtSet<Room> rooms,}) = _House;
}
enum Room { bedroom,kitchen,toilet,hall,boxroom }
我也有一个收藏集
KtMap<int,User> _users = mapFrom({
1: User(
houses: mapFrom({
1: House(
rooms: setFrom(
Room.values.toSet(),),)
}),});
KtMap<int,User> get users => _users.toMap();
我的目标是从内部地图中删除1个房间并返回更新后的集合。我该怎么做呢? 这是我的尝试(不起作用):
void removeRoom(int userId,int houseId,Room room) {
_users[userId].copyWith().houses[houseId].rooms.toMutableSet()..remove(room);
notifyListeners();
}
不要建议我built_value
,由于语法丑陋,我不想使用它。
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。