这个错误是由于在创建StoreModule时传递给FeatureSelector的元数据错误导致的。我们需要为FeatureSelector传递正确的元数据,以便StoreModule正确地创建我们的Store。
以下是一个示例:
在创建FeatureSelector时,确保使用正确的元数据。例如,在我们的ui.reducer.ts中,我们可以这样:
import { createFeatureSelector } from '@ngrx/store';
import { UiState, UiAction } from './ui.model';
export const uiStateKey = 'ui';
export const uiReducer = (
state: UiState = { /* initial state */ },
action: UiAction
): UiState => {
switch (action.type) {
// handle actions
default:
return state;
}
};
export const getUiState = createFeatureSelector(uiStateKey);
然后,我们可以将getUiState用作我们的selector:
import { Component } from '@angular/core';
import { Store } from '@ngrx/store';
import { UiState, UiAction } from './ui.model';
import { getUiState } from './ui.reducer';
@Component({
selector: 'app-root',
template: `
`
})
export class AppComponent {
ui$ = this.store.select(getUiState);
constructor(private store: Store<{ ui: UiState }>) {}
}