StoreModule.forRoot() - 如何在没有附加键的情况下返回对象

Posted

技术标签:

【中文标题】StoreModule.forRoot() - 如何在没有附加键的情况下返回对象【英文标题】:StoreModule.forRoot() - how to return object without additional key 【发布时间】:2019-07-18 02:06:35 【问题描述】:

我想知道如何返回与 reducer 函数相同类型的对象:

function storeReducer(
  state = INITIAL_APPLICATION_STATE,
  action: Actions
): ApplicationState 
  switch (action.type) 
    case LOAD_USER_THREADS_ACTION:
      return handleLoadUserThreadsAction(state, action);
    default:
      return state;
  

我期望 ApplicationState 类型的对象,但采用这种方法:

StoreModule.forRoot(storeReducer)

我正在获取带有键的对象:

storeReducer: // object of type Application State

我期望得到对象(没有额外的 storeReducer 键):

//object of type Application State

也试过StoreModule.forRoot(storeReducer),但后来我得到了空对象,但它不起作用。

【问题讨论】:

【参考方案1】:

StoreModule 上的 forRoot 方法期望和 ActionReducerMap,而不是你的 reducer 的结果。

我通常将我的设置在一个单独的文件中,如下所示:

export interface IAppState 
    aPieceOfState: IAPieceOfState;


export const reducers: ActionReducerMap<IAppState> = 
    aPieceOfState: aPieceOfStateReducer
;

然后将其导入 app.module.ts 并像这样使用它:

StoreModule.forRoot(reducers)

【讨论】:

【参考方案2】:

或者你可以提出一个断言StoreModule.forRoot(storeReducer as ActionReducerMap&lt;IAppState&gt;)

【讨论】:

以上是关于StoreModule.forRoot() - 如何在没有附加键的情况下返回对象的主要内容,如果未能解决你的问题,请参考以下文章

StoreModule.forRoot() - 如何在没有附加键的情况下返回对象

如何为我的 Angular 应用程序注册 ngrx 子功能(StoreModule.forFeature())?

如何用PHP控制文件上传类型?如*.jpg.

如何为 iOS 项目创建类引用,如 NSDictionary 类引用 - Apple Developer

如何生成 4 位唯一 id,如 discord id,如 #8052

如何为 pytz 处理 POSIX 时区信息(如 CST)?