Ngrx过滤减速机与aot

时间:2018-04-10 17:03:45

标签: angular angular-cli ngrx ngrx-store-4.0

我正在尝试使用ReduxJs site中的这个reducer与NgRx和Angular Cli:

function createFilteredReducer(reducerFunction, reducerPredicate) {
    return (state, action) => {
        const isInitializationCall = state === undefined;
        const shouldRunWrappedReducer = reducerPredicate(action) || isInitializationCall;
        return shouldRunWrappedReducer ? reducerFunction(state, action) : state;
    }
}

但是我用prod build得到了这个错误:

  

app / app.module.ts中的错误(504,29):模板编译'AppModule'时出错     'reducers'中的装饰器不支持函数表达式       'reducers'包含app / reducers / index.ts(106,9)的错误         考虑将函数表达式更改为导出函数。

您是否有任何想法如何使用在prod模式下编译的代码来实现此功能?

1 个答案:

答案 0 :(得分:0)

在朋友的帮助下解决了。 尝试:

export function createFilteredReducer(reducerFunction, reducerPredicate) {

在app.module上

import { StoreModule, ActionReducerMap, State } from '@ngrx/store';
import { StoreDevtoolsModule } from '@ngrx/store-devtools';
import { createFilteredReducer} from './redux/reducer';


imports: [
    ...
    StoreModule.forRoot({ createFilteredReducer}),
    StoreDevtoolsModule.instrument({
      maxAge: 25 //  Retains last 25 states
    })
  ]