我在尝试 NGXS 状态管理时遇到了问题,问题是如果我使用 id 从数组中删除记录,那么整个数组就会变空。这是我的用户状态的样子。
@State<UserStateModel>({
name: "users",
defaults: {
users: [
{
id: 179,
name: "test",
email: "test@gmail",
},{
id: 190,
name: "test12",
email: "test12@gmail",
}
],
},
})
这就是删除操作的样子
@Action(DeleteUser)
delete(
{ getState, patchState, setState }: StateContext<UserStateModel>,
{ id }
) {
const state = getState();
setState(
patch({
users: state.users.filter((user) => {
user.id !== id;
}),
})
);
}
这就是我在组件中调度动作的方式
export class IndexComponent implements OnInit {
// users: Observable<User>;
@Select(UserState.getUsers) users: Observable<User>;
constructor(private store: Store) {}
deleteUser(id: number) {
this.store.dispatch(new DeleteUser(id));
}
}