Angular NGRX实体状态更改导致其他切片更新

Angular NGRX实体状态更改导致其他切片更新,angular,rxjs,ngrx,state-management,ngrx-entity,Angular,Rxjs,Ngrx,State Management,Ngrx Entity,我在同一个州有多个实体。当我使用其中一个实体适配器更新时,也会触发其他EntityState的选择器observable,尽管选择器没有访问更新的状态片。这种行为是预期的吗 声明: export interface ComputerState extends EntityState<Computer> { } export interface PersonState extends EntityState<Person> { } export interface Da

我在同一个州有多个实体。当我使用其中一个实体适配器更新时,也会触发其他EntityState的选择器observable,尽管选择器没有访问更新的状态片。这种行为是预期的吗

声明:

export interface ComputerState extends EntityState<Computer> {
}

export interface PersonState extends EntityState<Person> {
}

export interface DataState {
    computer: ComputerState;
    person: PersonState;
}
人员选择器:

export const selectPersons= createSelector(
    selectState,
    state=> state? personAdapter.getSelectors().selectAll(state.person) : null
)

有人能解决这个问题吗?

您应该这样编码减速器:

on(Actions.updateComputerExample, (state, { id }) => {
   return computerAdapter.updateOne(
      { id: id, changes: { name: 'test' } },
      { ...state });
}),

“selectState”是什么样子的?export const selectState=createFeatureSelector('xxxx');xxxx代表我的状态常量。这不起作用,因为updateOne的第二个参数只接受计算机的状态。。。状态将是整个状态。如果它是计算机的一个缩减器,那么它永远不应该是整个状态。我有多个实体状态处于同一个状态->在问题中显示的情况下,对于计算机和个人来说,缩减器类似于:,但正如我在问题中所说,我对选择器有问题。
on(Actions.updateComputerExample, (state, { id }) => {
   return computerAdapter.updateOne(
      { id: id, changes: { name: 'test' } },
      { ...state });
}),