在Angular 7中,当页面重新加载时,RxJS行为主题订阅不会起作用,但在路由导航中会起作用。这是因为在页面重新加载时,Angular会重新创建组件实例,导致之前的订阅被取消。
要解决这个问题,你可以使用Angular的Router模块提供的ActivatedRoute服务来获取路由参数,并在ngOnInit生命周期钩子中重新订阅主题。
首先,确保你已经导入了ActivatedRoute服务:
import { ActivatedRoute } from '@angular/router';
然后在组件的构造函数中注入ActivatedRoute服务:
constructor(private route: ActivatedRoute) { }
接下来,在ngOnInit生命周期钩子中重新订阅主题:
ngOnInit() {
this.route.params.subscribe(params => {
// 在这里重新订阅主题并执行相关操作
});
}
通过这种方式,在路由导航时,每当参数发生变化时,都会重新订阅主题并执行相关操作。请根据你的具体需求,在subscribe回调函数中编写适当的代码。
希望这个解决方法能帮助到你!