NgRx在开发模式ng serve
中提供服务效果很好,但是当以prod模式ng serve -prod
或buid ng build --prod
投放时,ngrx无效。
答案 0 :(得分:1)
根据NGRX州的文件。这是处理您所看到的AOT构建问题的正确格式。
“以前与AOT兼容,需要将函数传递给provideStore方法,将reducers组合成一个根reducer。在第二个参数中,initialState也作为对象提供给方法。”
“这已经简化为只需要一个由库组成的reducers映射。第二个参数是你提供initialState的配置对象。”
他们的示例如下所示:reducer index.ts
:
import { ActionReducerMap } from '@ngrx/store';
export interface State {
auth: fromAuth.State;
layout: fromLayout.State;
}
export const reducers: ActionReducerMap<State> = {
auth: fromAuth.reducer,
layout: fromLayout.reducer,
};
在您的app.module
:
import { StoreModule } from '@ngrx/store';
import { reducers } from './reducers';
@NgModule({
imports: [
StoreModule.forRoot(reducers, {
initialState: {
auth: {
loggedIn: true,
},
},
}),
],
})
export class AppModule {}
我认为您的代码缺少初始状态声明,允许AOT编译引擎正确识别您在构建时尝试定义的内容。