ActivatedRoute
中为何@angular\router params is observable
?
我想知道为什么我需要订阅Params?为什么params是异步的,是否会出现路由的组件但是params仍然没有填充?
并且有没有办法在没有observable
的情况下获得价值?
答案 0 :(得分:11)
您可以使用
route.routerState.params
您可以订阅,因为当您的应用程序仅使用其他参数值导航到同一路径时,不会重新创建该组件,并且您无法知道参数何时发生更改。
通过订阅参数,您会收到通知,发生了只有参数值发生变化的路径操作。
答案 1 :(得分:1)
作用于此路线的矩阵参数。当参数集改变时,observable将发出一个新值。
ActivatedRoute上的params属性是Observable的原因是路由器在导航到同一组件时可能无法重新创建组件。在这种情况下,参数可能会更改,而不会重新创建组件。