fixed an issue where the reducers wouldn't be combined correctly when using AoT compilation

This commit is contained in:
Art Lowel
2016-12-13 12:03:04 +01:00
parent 5fbf07d838
commit d3370e266a
3 changed files with 20 additions and 9 deletions

View File

@@ -11,7 +11,7 @@ import { StoreModule } from "@ngrx/store";
import { RouterStoreModule } from "@ngrx/router-store";
import { StoreDevtoolsModule } from "@ngrx/store-devtools";
import { reducers } from './app.reducers';
import { rootReducer } from './app.reducers';
import { effects } from './app.effects';
@NgModule({
@@ -30,7 +30,7 @@ import { effects } from './app.effects';
* meta-reducer. This returns all providers for an @ngrx/store
* based application.
*/
StoreModule.provideStore(reducers),
StoreModule.provideStore(rootReducer),
/**
* @ngrx/router-store keeps router state up-to-date in the store and uses

View File

@@ -1,7 +1,20 @@
import { headerReducer } from './header/header.reducer';
import { hostWindowReducer } from "./shared/host-window.reducer";
import { combineReducers } from "@ngrx/store";
import { routerReducer, RouterState } from "@ngrx/router-store";
import { headerReducer, HeaderState } from './header/header.reducer';
import { hostWindowReducer, HostWindowState } from "./shared/host-window.reducer";
export interface AppState {
router: RouterState;
hostWindow: HostWindowState;
header: HeaderState;
}
export const reducers = {
headerReducer,
hostWindowReducer
router: routerReducer,
hostWindow: hostWindowReducer,
header: headerReducer
};
export function rootReducer(state: any, action: any) {
return combineReducers(reducers)(state, action);
}

View File

@@ -19,9 +19,7 @@ export class HeaderComponent implements OnInit {
}
ngOnInit(): void {
this.isNavBarCollapsed = this.store.select('headerReducer')
//ensure that state is not null, can happen when using AoT compilation
.filter((state: HeaderState) => state !== null && state !== undefined)
this.isNavBarCollapsed = this.store.select('header')
//unwrap navCollapsed
.map(({ navCollapsed }: HeaderState) => navCollapsed);
}