🐞 bug报告
受影响的软件包
@angular/router (可能)
是否为回归?
不是。它似乎已经存在了一段时间。参见 #17609
描述
如果你在ActivatedRouteSnapshot的queryParams对象上对现有属性进行变异,而不进行深拷贝,它似乎会改变路由器的内部状态。在这种情况下,告诉路由器使用变异后的queryParams对象进行导航不会触发导航事件。
🔬 最小复现
https://stackblitz.com/edit/github-powged?file=src%2Fapp%2Freproduction%2Freproduction.component.ts
7条答案
按热度按时间nc1teljy1#
理想情况下,修复的方法是自动返回查询参数对象的深拷贝,这样你就不会陷入这个陷阱。
yfwxisqw2#
感谢您的反馈。我计划在假期结束后不久对此进行更深入的研究。似乎有很多人遇到了类似的问题,所以我会看看我们能做些什么来解决这个问题。
qyuhtwio3#
这个问题有更新吗?
hts6caw34#
请注意,我们已经开始了针对您的功能请求的社区投票过程。距离投票过程结束还有20天。
有关Angular功能请求流程的更多详细信息,请参阅我们的文档。
bvhaajcl5#
感谢您提交您的功能请求!看起来在投票过程中,它没有收集到足够的票数进入下一阶段。
我们希望保持Angular丰富且符合人体工程学,同时关注其范围和学习过程。如果您认为您的请求可能超出了Angular的范围,我们鼓励您与community合作,将其发布为开源项目package。
您可以在我们的文档中找到有关功能请求过程的更多详细信息。
y1aodyip6#
我也陷入了这个陷阱。在升级到Angular 16之前(当时正在从14版本迁移),它确实有效,但之后就出现了这个问题。
prdp8dxp7#
请给这个问题一个👍,如果你想修复它。我几乎五年前打开了这个问题,由于缺乏投票,它一直没有得到解决:/