【发布时间】:2020-10-21 06:23:25
【问题描述】:
我在同一个状态片中有多个 EntitySates。当我使用我的一个实体适配器进行更新时,其他 EntityStates 的可观察选择器也会被触发,尽管选择器没有访问更新的状态切片。这是预期的行为吗?
状态:
export interface ComputerState extends EntityState<Computer> {
}
export interface PersonState extends EntityState<Person> {
}
export interface DataState {
computer: ComputerState;
person: PersonState;
}
以下 reducer 操作导致人员选择器 observable 发出一个新值:
on(Actions.updateComputerExample, (state, { id }) => {
return {
...state,
computer: computerAdapter.updateOne(
{ id: id, changes: { name: 'test' } },
state.computer
),
};
}),
人物选择器:
export const selectPersons= createSelector(
selectState,
state=> state? personAdapter.getSelectors().selectAll(state.person) : null
)
有人对此有解决方案吗?
【问题讨论】:
-
“selectState”是什么样的?
-
export const selectState= createFeatureSelector
('xxxx'); xxxx 代表我的状态常数
标签: angular rxjs ngrx state-management ngrx-entity