Spartacus storefront 登录后强制刷新语言,如果初始语言不在新列表中,则重置活动语言
我们有一个自定义的后端语言功能,在用户登录后,后端根据某些权限返回一个较小的语言列表 目前,在SpartacusSpartacus storefront 登录后强制刷新语言,如果初始语言不在新列表中,则重置活动语言,spartacus-storefront,Spartacus Storefront,我们有一个自定义的后端语言功能,在用户登录后,后端根据某些权限返回一个较小的语言列表 目前,在Spartacuslanguage.reducer中,如果成功,语言实体将被扩展,因此我无法覆盖语言实体,使其更少 最好的方法是什么?在哪里调度LoadLanguages操作(请求新的语言列表)并保存列表,以及从用户语言列表中设置活动语言?(初始活动语言可能不在新列表中,因此也应更改) 我尝试在登录/注销时调度SiteContextActions.LoadLanguages,但是CmsActions.L
language.reducer
中,如果成功,语言实体将被扩展,因此我无法覆盖语言实体,使其更少
最好的方法是什么?在哪里调度LoadLanguages
操作(请求新的语言列表)并保存列表,以及从用户语言列表中设置活动语言?(初始活动语言可能不在新列表中,因此也应更改)
我尝试在登录/注销时调度SiteContextActions.LoadLanguages
,但是CmsActions.LoadCmsPageData
此时已在Spartacus页面中调度。效果
,请求已处于活动状态
refreshLanguages$ = createEffect(() =>
this.actions$.pipe(
ofType(AuthActions.LOGIN, AuthActions.LOGOUT),
switchMap(() =>
this.routingService.getRouterState().pipe(
filter(
routerState =>
routerState &&
routerState.state &&
routerState.state.cmsRequired &&
!routerState.nextState
),
take(1),
map(routerState => routerState.state.context),
mergeMap(context => of(
new SiteContextActions.LoadLanguages(),
))
)
)
)
);