angular 路由器状态可以通过ActivatedRouteSnapshot进行可变,

35g0bw71  于 4个月前  发布在  Angular
关注(0)|答案(7)|浏览(80)

🐞 bug报告

受影响的软件包

@angular/router (可能)

是否为回归?

不是。它似乎已经存在了一段时间。参见 #17609

描述

如果你在ActivatedRouteSnapshot的queryParams对象上对现有属性进行变异,而不进行深拷贝,它似乎会改变路由器的内部状态。在这种情况下,告诉路由器使用变异后的queryParams对象进行导航不会触发导航事件。

🔬 最小复现

https://stackblitz.com/edit/github-powged?file=src%2Fapp%2Freproduction%2Freproduction.component.ts

nc1teljy

nc1teljy1#

理想情况下,修复的方法是自动返回查询参数对象的深拷贝,这样你就不会陷入这个陷阱。

yfwxisqw

yfwxisqw2#

感谢您的反馈。我计划在假期结束后不久对此进行更深入的研究。似乎有很多人遇到了类似的问题,所以我会看看我们能做些什么来解决这个问题。

qyuhtwio

qyuhtwio3#

这个问题有更新吗?

hts6caw3

hts6caw34#

请注意,我们已经开始了针对您的功能请求的社区投票过程。距离投票过程结束还有20天。
有关Angular功能请求流程的更多详细信息,请参阅我们的文档。

bvhaajcl

bvhaajcl5#

感谢您提交您的功能请求!看起来在投票过程中,它没有收集到足够的票数进入下一阶段。
我们希望保持Angular丰富且符合人体工程学,同时关注其范围和学习过程。如果您认为您的请求可能超出了Angular的范围,我们鼓励您与community合作,将其发布为开源项目package
您可以在我们的文档中找到有关功能请求过程的更多详细信息。

y1aodyip

y1aodyip6#

我也陷入了这个陷阱。在升级到Angular 16之前(当时正在从14版本迁移),它确实有效,但之后就出现了这个问题。

prdp8dxp

prdp8dxp7#

请给这个问题一个👍,如果你想修复它。我几乎五年前打开了这个问题,由于缺乏投票,它一直没有得到解决:/

相关问题