使用createReducer函数时为生产构建angular+ngrx 8时出错

目前,我正在尝试使用新的NgRXcreator功能构建Angular+NgRX 8应用程序。但是,当我为生产构建此应用程序时,出现以下错误:

decorators中不支持函数调用,但在“reducers”中调用了“createReducer”

在开发模式中,根本没有问题

请求减速机如下所示

导出接口状态扩展实体状态<请求>{
加载:布尔;
错误:任何;
}
export const initialState=adapter.getInitialState({
加载:false,
错误:null
});
export const reducer=createReducer(
初始状态,
在(RequestsActions.LoadRequestsAccess,(state,{requests})=>adapter.addAll(requests,{…state,loading:false})上,
在(RequestsActions.loadRequestsFailed,(状态,{error})=>({…状态,错误,加载:false}))上,
on(RequestsActions.deleteRequestSuccess,(state,{id})=>adapter.removeOne(id,state))
);

并与其他减缩器一起组成一个index.ts文件

导出常量减缩器={
请求:减速机
// [...]
}

StoreModule与reducers映射一起导入,如下所示

@NgModule({
进口:[
公共模块,
StoreModule.forFeature('requests',reducer),
EffectsModule.forFeature(效果),
// [...]
]
})
导出类RequestsModule{}

你知道发生了什么事吗?谢谢,干杯

您需要将减速器包装为函数调用,如下所示:

const yourReducer=createReducer(
初始状态,
在(RequestsActions.LoadRequestsAccess,(state,{requests})=>adapter.addAll(requests,{…state,loading:false})上,
在(RequestsActions.loadRequestsFailed,(状态,{error})=>({…状态,错误,加载:false}))上,
on(RequestsActions.deleteRequestSuccess,(state,{id})=>adapter.removeOne(id,state))
);
导出函数缩减器(状态:状态|未定义,操作:操作){
返回减速器(状态、动作);
}

见官方文件-

https://ngrx.io/guide/store/reducers#creating-减速器功能

发表评论