Angular Ngrx选择器未定义实体适配器

Angular Ngrx选择器未定义实体适配器,angular,ngrx,Angular,Ngrx,在这件事上兜圈子。每次我使用选择器时,它都是未定义的。我检查了其他帖子,他们丢失的代码我已经有了。当使用选择器时,我总是无法定义。我也有ngrx开发工具设置。任何帮助都将不胜感激 组件: import * as fromBusiness from '@app/@store/reducers/index'; ngOnInit(): void { const id = this.params.id; this.business$ = this.store.pipe(sele

在这件事上兜圈子。每次我使用选择器时,它都是未定义的。我检查了其他帖子,他们丢失的代码我已经有了。当使用选择器时,我总是无法定义。我也有ngrx开发工具设置。任何帮助都将不胜感激

组件:

import * as fromBusiness from '@app/@store/reducers/index';

    ngOnInit(): void {
    const id = this.params.id;
    this.business$ = this.store.pipe(select(fromBusiness.getBusinessEntityById(), { id }))
    .pipe(
      map((business: BusinessModel) => {
        return this.business = business;
      }),
    );
    console.log(this.business);
  }
export interface State extends EntityState<BusinessModel> {}

export const adapter: EntityAdapter<BusinessModel> = createEntityAdapter<
  BusinessModel
>( {
  selectId: (business: BusinessModel) => business.id,
});

export const initialState = adapter.getInitialState({});

export const businessReducer = createReducer(
  initialState,
  //reducer methods here, upsertone, addone etc
);

export function businessFuncReducer(state: State | undefined, action: Action) {
  return businessReducer(state, action);
}

export const businessFeatureSelector = createFeatureSelector<State>(
  'businesses'
);

export const {
  selectIds,
  selectEntities,
  selectAll,
  selectTotal,
} = adapter.getSelectors();


export const getAllBusinesses = createSelector(
  businessFeatureSelector,
  selectAll
);
功能模块

StoreModule.forFeature('businesses', fromBusiness.businessFuncReducer),
减速器:

import * as fromBusiness from '@app/@store/reducers/index';

    ngOnInit(): void {
    const id = this.params.id;
    this.business$ = this.store.pipe(select(fromBusiness.getBusinessEntityById(), { id }))
    .pipe(
      map((business: BusinessModel) => {
        return this.business = business;
      }),
    );
    console.log(this.business);
  }
export interface State extends EntityState<BusinessModel> {}

export const adapter: EntityAdapter<BusinessModel> = createEntityAdapter<
  BusinessModel
>( {
  selectId: (business: BusinessModel) => business.id,
});

export const initialState = adapter.getInitialState({});

export const businessReducer = createReducer(
  initialState,
  //reducer methods here, upsertone, addone etc
);

export function businessFuncReducer(state: State | undefined, action: Action) {
  return businessReducer(state, action);
}

export const businessFeatureSelector = createFeatureSelector<State>(
  'businesses'
);

export const {
  selectIds,
  selectEntities,
  selectAll,
  selectTotal,
} = adapter.getSelectors();


export const getAllBusinesses = createSelector(
  businessFeatureSelector,
  selectAll
);
导出接口状态扩展EntityState{}
导出常量适配器:EntityAdapter=createEntityAdapter<
商业模式
>( {
selectId:(business:BusinessModel)=>business.id,
});
export const initialState=adapter.getInitialState({});
export const businessReducer=createReducer(
初始状态,
//这里的减速机方法、upsertone、addone等
);
导出函数(状态:状态|未定义,操作:操作){
返回(状态、动作);
}
导出常量businessFeatureSelector=createFeatureSelector(
“企业”
);
出口常数{
SelectID,
选择实体,
选择全部,
选择总计,
}=adapter.getSelectors();
export const getAllBusinesss=createSelector(
businessFeatureSelector,
选择全部
);
reducer.index.ts

export interface State {
  business: fromBusiness.State;
}

export const selectBusinessState = createFeatureSelector<fromBusiness.State>(
  'businesses'
);

export const selectBusinessEntities = createSelector(
  selectBusinessState,
  fromBusiness.selectEntities
);

export const getBusinessEntityById = () => {
  return createSelector(
    selectBusinessEntities,
    (entities: Dictionary<BusinessModel>, props: {id: string}) => {
      return entities[props.id];
    },
  );
};
导出接口状态{
业务:fromBusiness.State;
}
导出常量selectBusinessState=createFeatureSelector(
“企业”
);
export const selectBusinessEntities=createSelector(
选择BusinessState,
fromBusiness.selectEntities
);
导出常量getBusinessEntityById=()=>{
返回createSelector(
选择商业实体,
(实体:字典,道具:{id:string})=>{
返回实体[props.id];
},
);
};
谢谢你在这方面的帮助。花了2天没有解决方案。附件是devtools树的屏幕截图


我建议将导入量增加一倍,并确保其正确无误。问题可能不在于使用的选择器,而在于父选择器之一?

我建议只需将导入量加倍,并确保其正确。问题可能不在于正在使用的选择器,而在于父级选择器之一?

事实证明,不是选择器或模块。这正是我消费它的方式。周围的例子对我不起作用,所以我用了稍微不同的方法。

结果,不是选择器或模块。这正是我消费它的方式。周围的例子对我不起作用,所以我用了稍微不同的方法。

我尝试了父级别,但无论我尝试什么选择器,我总是无法定义。我想知道应用程序模块是否设置正确。我有:StoreModule.forFeature('businesss',businessFuncReducer),我尝试了父级,但无论我尝试什么选择器,我总是无法定义。我想知道应用程序模块是否设置正确。我有:StoreModule.forFeature('businesss',businessFuncReducer),