在ngrx 8 createReducer()和on()函数中使用@ ngrx / router-store操作

时间:2019-09-20 14:50:03

标签: angular ngrx-router-store ngrx-store-8.0

我有一个ngrx v8样式缩减器(使用createReducer + on),需要对路由更改做出反应。

let myAcction = createAction('my action', prop<boolean>);

let reducer = createReducer(
  initialState,
  on(myAction, (state, prop) => ({...state, example=prop })),
  on(ROUTER_NAVIGATION, (state, routeParams) => ({...state, example2:{...routeParams}}))
)

由于ROUTER_NAVIGATION不是动作创建者,因此无法编译:

  

“ @ ngrx / router-store / navigation”类型的参数不可分配   设置为“ ActionCreator>”类型的参数。         类型'“ @ ngrx / router-store / navigation”'不能分配给'FunctionWithParametersType'

它也不能与RouterNavigationAction一起使用:

  

类型'boolean'的参数不能分配给类型的参数   'ActionCreator>'

如何在createReducer / on函数中使用ngrx / router-store操作?我找不到为给定动作导出的动作创建者。

1 个答案:

答案 0 :(得分:1)

我会在其存储库上针对ngrx提出问题。同时,您可以通过在对象{ type: ROUTER_NAVIGATION }中使用令牌来破解它,因为这是它在后台运行的方式。这不是理想的方法,但是在他们修复它之前它才起作用。