【问题标题】:NGRX router-store: selectCurrentRoute selector undefinedNGRX 路由器存储:selectCurrentRoute 选择器未定义
【发布时间】:2022-01-08 12:57:04
【问题描述】:

我正在尝试使用 selectCurrentRoute 选择器,但我只是未定义。

export interface AppState {
  router: RouterReducerState<RouterStateUrl>
}

export const reducers: ActionReducerMap<AppState> = {
  router: routerReducer
};

export const selectRouterState = createFeatureSelector<RouterReducerState<RouterStateUrl>>('router');
export const { selectCurrentRoute } = getSelectors(selectRouterState);
export const getCurrentRoute = createSelector(selectRouterState, selectCurrentRoute);
------    
this.store
      .select(routerFromSelector.getCurrentRoute)
      .subscribe((route) => console.log(route));

core.module.ts

StoreModule.forRoot(reducers), 
StoreRouterConnectingModule.forRoot({
serializer: CustomSerializer,
}),
      
providers: [{ provide: RouterStateSerializer, useClass: CustomSerializer }],

app-routing.module.ts

imports: [RouterModule.forRoot(routes, {
    paramsInheritanceStrategy: 'always'
})],

我的状态:

router -> state -> 
url():"/person/1"
params -> id():"1"
queryParams():
navigationId():1

【问题讨论】:

    标签: angular ngrx angular-routing ngrx-store


    【解决方案1】:

    商店中使用的默认路由器密钥是router (https://github.com/ngrx/platform/blob/875adb3a99ba394f58d107c6223578326887c74e/modules/router-store/src/router_store_module.ts#L98)。

    这意味着您需要将您的状态密钥routerState 更改为router,或者您可以在StoreRouterConnectingModule.forRoot() 中配置路由器密钥。 (https://ngrx.io/guide/router-store/configuration)

    StoreRouterConnectingModule.forRoot({
          stateKey: 'routerState'
    })
    

    【讨论】:

    • 谢谢!我将 routerState 更改为 router 但在我的选择中仍然未定义。我会用新的状态更新我原来的帖子。
    • this.store.select(routerFromSelector.selectUrl) 工作,但它是唯一的
    • export interface RouterStateUrl { url: string; params: Params; queryParams: Params; } 为了让选择器正常工作,我是否遗漏了一些必要的东西?我正在使用自定义路由序列化程序:ngrx.io/guide/router-store/configuration
    猜你喜欢
    • 2022-08-18
    • 1970-01-01
    • 1970-01-01
    • 2020-08-31
    • 1970-01-01
    • 2021-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多