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<IAppState>)
【讨论】:
以上是关于StoreModule.forRoot() - 如何在没有附加键的情况下返回对象的主要内容,如果未能解决你的问题,请参考以下文章
StoreModule.forRoot() - 如何在没有附加键的情况下返回对象
如何为我的 Angular 应用程序注册 ngrx 子功能(StoreModule.forFeature())?
如何为 iOS 项目创建类引用,如 NSDictionary 类引用 - Apple Developer