将 @ngrx/router-store 操作与 ngrx 8 createReducer() 和 on() 函数一起使用
Using @ngrx/router-store actions with ngrx 8 createReducer() and on() function
我有一个 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
不是动作创建者:
Argument of type '"@ngrx/router-store/navigation"' is not assignable
to parameter of type 'ActionCreator>'.
Type '"@ngrx/router-store/navigation"' is not assignable to type 'FunctionWithParametersType'
它也不适用于 RouterNavigationAction
:
Argument of type 'boolean' is not assignable to parameter of type
'ActionCreator>'
如何在 createReducer/on 函数中使用 ngrx/router-store 操作?我找不到为给定动作导出的动作创建者。
我会在他们的存储库中针对 ngrx 提出问题。同时,您可以通过在对象中使用令牌来破解它:{ type: ROUTER_NAVIGATION }
因为这就是它在幕后的工作方式。这并不理想,但在他们修复之前它一直有效。
我有一个 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
不是动作创建者:
Argument of type '"@ngrx/router-store/navigation"' is not assignable to parameter of type 'ActionCreator>'. Type '"@ngrx/router-store/navigation"' is not assignable to type 'FunctionWithParametersType'
它也不适用于 RouterNavigationAction
:
Argument of type 'boolean' is not assignable to parameter of type 'ActionCreator>'
如何在 createReducer/on 函数中使用 ngrx/router-store 操作?我找不到为给定动作导出的动作创建者。
我会在他们的存储库中针对 ngrx 提出问题。同时,您可以通过在对象中使用令牌来破解它:{ type: ROUTER_NAVIGATION }
因为这就是它在幕后的工作方式。这并不理想,但在他们修复之前它一直有效。