angular - 角度路由错误 - TypeError:无法分配给只读属性“_futureSnapshot”
问题描述
我有一个设置了 NgRx 的 Angular 项目。我想调度导航操作,这样我就不必将路由器和 ActivatedRoute 注入到组件中,并且一直在关注 Todd Mottos 的精彩视频。
设置了一个 ngrx 效果来监听导航操作。这是在根应用程序级别设置的。
// NgRx Effect
navigate$ = createEffect(() => {
... effect code
// important bit
this.router.navigate(path, { queryParams, ...extras });
}, { dispatch: false });
但是,我今天遇到了一个问题,在尝试使用来自功能中的组件(不是根级别)的相对路径分派导航操作时出现错误。像往常一样,我从功能组件传入 ActivatedRoute,以便可以从相对路径计算实际路径:
this.store.dispatch(new fromRootStore.Go({
path: ['..', 0],
extras: { relativeTo: this.route }
});
但是,我收到以下错误:
无法分配给对象“[object Object]”的只读属性“_futureSnapshot”
直接在功能组件中使用路由器,并传递组件的 ActivatedRoute 工作正常:
this.router.navigate(['..', 0], { relativeTo: this.route });
使用绝对路径调度路由操作也可以正常工作:
this.store.dispatch(new fromRootStore.Go({ path: '/absolute/path' });
这是否与路由器位于应用程序的根级别,但 ActivatedSnapshot 来自功能中的组件这一事实有关?感谢您对此的任何帮助。
解决方案
推荐阅读
- python - 将闭合曲线拟合到一组噪声点
- objective-c - 在 Objective C 中清理 NSURL
- python - Flask-SQLAlchemy:SAWarning:身份映射已经有(对象)的身份,用新刷新的对象替换它
- ansible - 如果嵌套列表中的 var 在 Ansible 中为真,则执行任务
- symfony - 如何在 Symfony 4 中防止用户自动注销?
- python - 熊猫数据框列的 KeyError 异常
- c# - EF Core > 删除实体(软删除)> 实体状态保持不变
- raspberry-pi - Raspberry pi 4 Model B 更改日期格式
- azure-active-directory - 如何将 Azure AD B2C 连接到 Azure AD
- rust - 如何更新 HashMap 中的键?