如何从forRoot()简化

时间:2018-11-02 08:31:53

标签: angular ngrx

我对NGRX存储有疑问,并将其提供给组件。

目前,我的应用程序架构如下: app.module-> StoreModule.forRoot(reducers, {metaReducers})

export interface AppState {
  user: User.State;
}

export const reducers: ActionReducerMap<AppState> = {
  user: userReducer,
};

其他功能模块-> StoreModule.forFeature('feature', featureReducers),

在这种方法下,一切工作正常,我可以为以下组件提供存储:

constructor(
  private store: Store<AppState>,
) {}

现在,我想停止使用默认的AppState。我想删除app.module中的forRoot并仅将功能模块与forFeature一起使用。 在这种情况下,如何提供“存储到组件”?我应该将什么传递给Store<???>

1 个答案:

答案 0 :(得分:0)

存储区始终包含整个状态对象。注入商店时,泛型仅用于类型检查/安全性。换句话说,您可以执行以下操作:

constructor(
  private store: Store<FeatureState>,
) {}

此外,请确保将forRoot导入保留在AppModule中,在应用程序中需要一次以内部连接NgRx。在执行此操作时,您可以传递一个空的reducer对象。

StoreModule.forRoot({}, [])