angular - MemoizedSelector 不可分配给类型为 'string' 的参数

标签 angular typescript ngrx

我正在使用 Angular 6 和 NgRX 6。

我有一个看起来像这样的 reducer -

export interface IFlexBenefitTemplateState {
  original: IFlexBenefitTemplate;
  changes: IFlexBenefitTemplate;
  count: number;
  loading: boolean;
}

export const INITIAL_STATE: IFlexBenefitTemplateState = {
  original: null,
  changes: null,
  count: 0,
  loading: true,
};

export default (state = INITIAL_STATE, { type, payload }) => {
  switch (type) {

    case STAGE_TEMPLATE_CHANGE:
      const pendingChanges = Object.assign({}, state.changes.sections);
      const newSection = Object.assign({}, pendingChanges[payload.key], payload, {
        changeType: 'updated',
      });

      return {
        ...state,
        changes: {
          sections: Object.assign({}, pendingChanges, { [payload.key]: { ...newSection } }),
        },
        count: !pendingChanges[payload.key].hasOwnProperty('changeType') ? state.count + 1 : state.count,
      };

    default:
      return state;
  }
};

我有一个为我抓取 state.count 的选择器,它看起来像这样 -

export const changesCount = createSelector(getStore, (state: IFlexBenefitTemplateState) => state.count);

我正试图表明这是我的模板,如下所示 -

@Component({
  selector: 'app-page-header-component',
  templateUrl: './page-header.component.html',
})
export class PageHeaderComponent implements OnInit {
  public count$: Observable<number>;

  public language: string;

  constructor(private store: Store<ICommonAppState>) {}

  ngOnInit(): void {
    this.count$ = this.store.select(changesCount);
    this.language = 'English';
  }
}

this.count$ 但是返回错误

[ts] Argument of type 'MemoizedSelector<IBenefitsState, number>' is not assignable to parameter of type 'string'.

我一辈子都无法理解这是怎么回事?

最佳答案

我会检查您是否将正确的接口(interface)传递到您的 store 注入(inject)中。

IFlexBenefitTemplateState 是否存在于 ICommonAppState 上?

关于angular - MemoizedSelector 不可分配给类型为 'string' 的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51244192/

相关文章:

javascript - 获取不同语言 Angular 中数字的千位分隔符

angular - 根据 NgRx 商店中的 id 从商店中选择对象

javascript - 错误类型错误 : Cannot read property 'push' of null

javascript - AES 解密返回空字符串

Typescript - 为什么不能推断出这个字符串文字类型?

Angular2路由器监听参数变化

angular - ngrx 从存储中选择值 - 如果值为 null 则填充该值

angular - NGRX:TypeError:操作必须具有类型属性

javascript - Angular 路由不显示内容

Angular Form Control 导致无限循环