0

我正在使用ngrx/router-store 8。此版本公开了“@ngrx/router-store/request”操作,其中在其有效负载中包含一个navigationTrigger:

  type: '@ngrx/router-store/request',
  payload: {
    routerState: {
      url: '/directory',
      queryParams: {},
      params: {},
      navigationTrigger: true
    },
    event: {
      id: 2,
      url: '/jobs',
      navigationTrigger: 'imperative',
      restoredState: null
    }
  }
}

navigationTrigger 可以获取以下两个值之一:

  1. 命令式 - 直接访问页面(通过单击链接)
  2. popstate - 使用浏览器后退/前进按钮时

我需要随时知道我是如何到达当前页面的,所以我需要访问这个变量。问题是 router-store 的内置 reducer 不会将此变量保持在状态中,它仅显示在此操作的有效负载中。我意识到我需要覆盖默认的减速器,但我不知道如何做到这一点,也找不到任何相关信息。也许还有另一个想法如何存储这些数据?

4

1 回答 1

1

可以在ROUTER_REQUEST里面收听@Effect。在您的有效载荷中,您可能会拥有这些信息。

  getMyNeed$ = createEffect(() => this.actions$.pipe(
    ofType(ROUTER_REQUEST),
    tap(console.log),
    map(({payload}) => SomeAction(payload))
  ));
于 2019-11-13T19:17:13.997 回答