Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 每次更改路线时,从firebase重新装载物品_Javascript_Angular_Firebase_Rxjs_Google Cloud Firestore - Fatal编程技术网

Javascript 每次更改路线时,从firebase重新装载物品

Javascript 每次更改路线时,从firebase重新装载物品,javascript,angular,firebase,rxjs,google-cloud-firestore,Javascript,Angular,Firebase,Rxjs,Google Cloud Firestore,我用angular编写了一个服务,它使用快照更改从firebase获取项目并返回它们。在我的组件中,我订阅数据并将主题存储在一个数组中。然后我使用ngFor显示卡中的数据 每次我切换页面(不重新加载)时,数据都会以可见的方式重新加载,这会损害用户体验,而且看起来不太好。我试着用take(1),但没用。有时它会多次显示相同的数据 为什么会发生这种情况?我应该做些什么来修复它 您可以:)您可以尝试将数据加载到包装器组件中,并将其传递给子组件。发生这种情况的原因是,当组件离开并且路由发生更改时,组件(

我用angular编写了一个服务,它使用快照更改从firebase获取项目并返回它们。在我的组件中,我订阅数据并将主题存储在一个数组中。然后我使用ngFor显示卡中的数据

每次我切换页面(不重新加载)时,数据都会以可见的方式重新加载,这会损害用户体验,而且看起来不太好。我试着用take(1),但没用。有时它会多次显示相同的数据

为什么会发生这种情况?我应该做些什么来修复它


您可以:)

您可以尝试将数据加载到包装器组件中,并将其传递给子组件。发生这种情况的原因是,当组件离开并且路由发生更改时,组件(以及所有加载的数据)被销毁。

我想我解决了这个问题。我使用Ngondestory取消订阅数据获取,现在我删除了它,所以即使我更改了路由,我仍然在订阅。这是解决问题的好方法吗?除非您需要不同组件中的数据是的。