我有一个使用NGRX的Angular 6应用。 我的功能状态包括:
export class HostedApplicationsState {
applications: Array<HostedApplicationProperties>;
contexts: {[appName: string]: HostedApplicationContext};
states: {[appName: string]: ApplicationState};
totalBadgeCount: number;
}
上下文和状态是基于应用程序名称的字典。 我有一个“哑”列表组件,该组件从以下选择器获取数据:
export const hostedAppsListSelector = createSelector(hostedApplicationsPropertiesSelector, hostedappsAllContextsSelector, hostedappsStatesSelector,
(allProperties, contexts, states) => {
return allProperties && allProperties.map(properties =>
({properties, context: contexts[properties.applicationName], state: states[properties.applicationName]}));
});
我的列表组件包装有一个智能组件,该组件使用:
apps: Observable<Array<HostedApplication>>;
ngOnInit() {
this.apps = this.store.pipe(select(hostedAppsListSelector));
}
<dbm-hosted-applications-list [apps]="apps | async"></dbm-hosted-applications-list>
我的列表已正确填充,但是一旦有更多数据到达(特别是:“状态”已填充”),它就不会反映对该状态所做的任何更改。 我的reducer确实替换了整个状态(返回该状态的新实例)。 有什么建议吗?