如何在ActionReducerMap <State>对象中使用方法CreateReducer?

时间:2019-10-23 11:43:53

标签: angular ngrx

我想通过CreateReducer方法创建减速器,但是我不明白为什么它不起作用。

我尝试过更改州立课程,但我认为这并不是路要走。

export const reducers: ActionReducerMap<State> = {
  productsReducer: createReducer(initialState, on(ProductListActions.toggleImage), state => )
};

'(state:any)=> any'类型的参数不能分配给'On'类型的参数。   类型'(state:any)=>任何'缺少类型'On'的以下属性:减速器,类型

1 个答案:

答案 0 :(得分:0)

因为您没有正确使用括号。卸下toggleImage之后的支架,并在该功能之后使用它。如果您更多地使用缩进,则可以看到该问题。而且,您还必须返回一个状态,因为reducer是一个将操作应用于状态并随后返回新状态的函数。

export const reducers: ActionReducerMap<State> = {
  productsReducer: createReducer(
    initialState,
    on(ProductListActions.toggleImage, state => state) // <-- This ) is missing and removed after toggleImage
  )
};

除此之外,您还需要将其包装到另一个函数中,否则AOT编译器将引发错误。请参见docs和此post