Angular 重新加载组件时保留可观察值
我有一个angular应用程序(v5)。其中一页上有两个组件(A和B)。组件A有一个网格,在单元格单击时,该网格将单元格值推送到rxjs主题。组件B订阅了该主题并相应地刷新其内容。此流按预期工作,直到组件B移动到其他routerlink 从引擎盖下面看,我可以看到当点击组件A上的单元格时,组件B确实收到了订阅(next)处理程序更改的通知。注意,此时组件B还不可见。当组件B通过routerlink点击进入可视状态时,其UI不会反映主题中的值(可观察)Angular 重新加载组件时保留可观察值,angular,asynchronous,react-redux,rxjs,observable,Angular,Asynchronous,React Redux,Rxjs,Observable,我有一个angular应用程序(v5)。其中一页上有两个组件(A和B)。组件A有一个网格,在单元格单击时,该网格将单元格值推送到rxjs主题。组件B订阅了该主题并相应地刷新其内容。此流按预期工作,直到组件B移动到其他routerlink 从引擎盖下面看,我可以看到当点击组件A上的单元格时,组件B确实收到了订阅(next)处理程序更改的通知。注意,此时组件B还不可见。当组件B通过routerlink点击进入可视状态时,其UI不会反映主题中的值(可观察) “可见性”是问题吗 routerlink单击
在此场景中,您应该使用行为主题。行为主体发出最后一个值。因此,当您在组件B中订阅时,它将接收组件A发出的最后一个值
希望它能有所帮助你能做一个plunker或stackblitz来演示你的问题吗?我不清楚细节,看看一些代码会有帮助。通常,主题仅在提供项目时才发出项目。BehaviorSubject在订阅时发出最近的项。还有其他类型的主题,你可以在这里找到:将尝试创建一个。我在看你的常规课程,希望能找到一些线索!谢谢大家对不同主题类型的建议。它确实解决了我的问题。通过ngrx解决这个问题更好吗?