【发布时间】:2017-09-16 05:14:02
【问题描述】:
我正在使用以下库:
- 角 4
- @ngrx/router-store
- @ngrx/store-devtools
就在最近,当尝试调度 go 路由器操作并将 relativeTo 设置为当前活动路由时:
go(['test', id], {}, {relativeTo: this._active}))
我收到此错误:
ERROR TypeError: toISOString is not a function
at String.toJSON (<anonymous>)
at Object.<anonymous> (shim.js:736)
at derez (<anonymous>:2:5166)
at derez (<anonymous>:2:5787)
at derez (<anonymous>:2:5787)
at derez (<anonymous>:2:5787)
at derez (<anonymous>:2:5787)
at derez (<anonymous>:2:5605)
at derez (<anonymous>:2:5787)
at derez (<anonymous>:2:5787)
at derez (<anonymous>:2:5787)
at derez (<anonymous>:2:5787)
at derez (<anonymous>:2:5605)
at derez (<anonymous>:2:5787)
at derez (<anonymous>:2:5787)
似乎是 devtools 处理负载中的ActivatedRoute 的问题(类似于this issue)。
如果我实现go 动作创建器的新版本(如此处建议:Redux Devtools Extension Troubleshooting)以将toJSON 函数添加到NavigationExtras,那么一切正常:
go(path: string|any[], query?: any, extras?: NavigationExtras): any {
extras['toJSON'] = function(): any {
return { ...this, relativeTo: this.relativeTo.snapshot.url };
};
const payload = { path, query, extras };
return { type: routerActions.GO, payload };
}
还有其他人遇到过这个问题吗?有关如何解决此问题的任何建议?
更新: 看起来它也与延迟加载的路由有关。仅当当前路由是延迟加载模块的一部分时才会发生错误(即通过loadChildren)
【问题讨论】:
标签: ngrx redux-devtools-extension