我们可以在ngrx中将实体注册到全局存储吗?这可能吗



如果我们在全球商店中实体化,那就太好了?

我有一些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)),

最新更新