angular - ngrx 路由器无法读取未定义的属性“firstChild”
问题描述
我正在尝试使用ngrx的路由器商店
/模块
@NgModule({
imports: [
....
StoreModule.forRoot(reducers)
StoreRouterConnectingModule.forRoot(),
...
],
....
})
/店铺
import { getSelectors, RouterReducerState } from '@ngrx/router-store'
const selectRouter = createFeatureSelector<RouterReducerState>('router');
const { selectQueryParam } = getSelectors(selectRouter);
export const selectedId = selectQueryParam('id'); //error after subscribing
但是当我订阅任何selectRouter
选择器时,例如selectQueryParam
,我得到错误
Cannot read property 'firstChild' of undefined
因为我的routerState
对象没有root
属性...
我在谷歌上能找到的最接近的是https://github.com/ngrx/platform/issues/2153
知道如何解决这个问题并使用我的路线选择器吗?
解决方案
TypeError: Cannot read property ‘firstChild’ of undefined
发生这种情况是因为,将一个空的输入对象传递给 serialize(),但它需要一个 RouterStateSnapshot 的实例。
什么是 RouterStateSnapshot?
这是一个相对复杂的类,在我们模拟输入之前需要一些了解。这实际上是测试序列化程序中最复杂的部分。
推荐阅读
- css - Clearfix来自“”内容的白色背景
- python - Python 中的 threading.Timer -- 两个函数在变量标识上达成一致,但在值上不一致
- spring-batch - Spring批处理实例id重复键错误,尝试从#1开始
- mongodb - MongoDB连接安全
- javascript - 如果 CDN 失败,如何使用 javascript 回退到本地服务器以获得 fontawesome?
- python - 如何将包含列表字符串的字节转换为 Python 对象?
- javascript - 如何将类添加和删除到 div 元素纯 javascript
- java - 如何从 CallableStatement 样板代码中删除重复项?
- node.js - 获得与 Node.js 一起使用的安全 WebSocket 的最低要求是什么?
- sql - 将所有位置分组到一个位置