我有几个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,我不想使用它,因为它的语法很难看。
发布于 2020-08-12 23:30:07
我花了很多时间,但我找到了解决方案:

https://stackoverflow.com/questions/63359647
复制相似问题