如果我们在全球商店中实体化,那就太好了?
我有一些crud操作,使用@ngrx/entity可以很容易地完成,我想把它放在根存储中。
我尝试过创建一个实体,但原理图是为for Feature((创建的。
NgRx实体基本上是一个字典,包含要更新/读取的匹配NgRx运算符
例如,您可以在任何可以存储字符串的存储中始终保存实体对象。如果你只需要一个实体对象,你可以通过扩展商店来做到这一点
export interface State extends EntityState<User> {
...
}
或者你可以像一样在商店中创建实体对象
export interface State {
users: EntityState<User>;
books: EntityState<Book>;
}
这两种方式都可以使用适配器。对于扩展版本,将整个State
传递给适配器。对于第二种方法,将users属性传递给adapter方法,并将结果设置为状态中该属性的新值。
编辑
要更新实体对象,需要使用适配器。创建一个适配器并在异径管中使用。有关它的更多信息和代码示例,请访问https://ngrx.io/guide/entity/adapter
// adapter definition
export const userAdapter: EntityAdapter<User> = createEntityAdapter<User>();
// reducer call for extended state / first version
on(UserActions.setUsers, (state, { users }): State => userAdapter.setAll(users, state)),