angular - 扩展 @ngrx/router-store routerReducer 以修改添加到 RouterStateUrl 的字段
问题描述
如何使用 Angular 8、ngrx 8 扩展逻辑我使用自定义序列化程序保持路由器状态
export class CustomSerializer implements RouterStateSerializer<RouterStateUrl>
自定义状态在哪里
export interface RouterStateUrl {
url: string;
path?: string[];
params: Params;
queryParams: Params;
breadcrumbs: Breadcrumb[];
} 添加一个新字段 -breadcrumbs
对于整个商店,我有一个这样的减速器映射:
export interface State {
router: fromRouter.RouterReducerState<any>;
//... other feature states
}
export const reducers: ActionReducerMap<State> = {
router: fromRouter.routerReducer,
// ...other feature reducers
};
我想操纵我的路由器状态的自定义部分(面包屑字段)。是否有一种标准方法可以扩展 routerReducer 以允许更改自定义字段?
更新:我看到的一种可能的解决方法是在商店中为面包屑创建一个单独的功能,保持路由器状态功能的纯净。这将需要新功能来减少路由器操作。在我看来,这是一个 hack。路由器状态允许使用额外字段扩展状态似乎不合逻辑,但减速器不允许
解决方案
(目前)不可能向内置路由器减速器添加自定义操作。
根据您的需要,您可以:
- 正如您所提到的,根据路由器操作创建自己的减速器
- 根据路由器状态创建选择器以构建面包屑
推荐阅读
- python - 如何通过xpath获取元素
- android-studio - 为什么 Android Studio 在鼠标点击时不显示小部件元素?
- perl - Perl:一些网站阻止非浏览器请求。但是怎么做?
- python - 将 ProgressBar 添加到多线程 Python 脚本
- javascript - Openlayers Modify 交互仅在移动设备上短时间有效
- html - 如何在绝对块中保持图像响应?
- dialogflow-es - 对 Dialogflow 环境的 Botium dialogflow 连接器支持
- php - 来自 laravel 存储的图像不能出现在主机上
- php - 用一个空格替换多个空格/制表符 [NO newline]
- c++ - 对 unordered_map STL 搜索两者