0
//first.reducer.ts
export function firstReducer(state: number = 0, action: actions.actionsForFirst): number{
console.log("firstReducer")
console.log(action)
switch(action.type) {
...
return state;
}
}
//second.reducer.ts
export function secondReducer(state: string = "qwe", action: actions.actionsForSecond): string {
console.log("secondReducer")
console.log(action)
switch(action.type) {
...
return state;
}
}
//store.module.ts
const reducers = { firstReducer, secondReducer };
@NgModule({
imports: [
StoreModule.provideStore(reducers), //import reducers
],
...
})
export class StoreModule { };
//app.module.ts
import { StoreModule } from '@ngrx/store';
import { CoreStoreModule } from './core-store.module'; // module with reducers
@NgModule({
bootstrap: [AppComponent],
imports: [
CoreStoreModule,
effects.map(effect => EffectsModule.run(effect)) //register some imported effects
],
...
})
export class AppModule { }
日誌輸出:NGRX:初始動作燒製兩次減速器
firstReducer對象類型: 「@ NGRX /存儲/初始化」 原:對象
secondReducer對象類型:「@ NGRX /存儲/初始化」 原:對象
firstReducer對象類型: 「@ NGRX /存儲/初始化」 原:對象
secondReducer對象類型: 「@ NGRX /存儲/初始化」 原:對象
即@ NGRX /存儲/初始化動作是爲兩個firstReducer和secondReducer燒製兩次。
這是什麼原因造成的?有the open issue它
你希望得到什麼樣的答案?你所鏈接的GitHub問題有一個[來自作者之一的評論](https://github.com/ngrx/store/issues/280#issuecomment-280651314),稱你「應該只在你的商店中提供商店根AppModule的導入「。在[本期](https://github.com/ngrx/store/issues/281)中討論將商店放入功能模塊中。我的理解是,它尚未得到支持。 – cartant