【问题标题】:Reloading items from firebase every change in route每次更改路线时都从 firebase 重新加载项目
【发布时间】:2018-03-09 18:22:14
【问题描述】:

我用 Angular 编写了一个服务,它使用 snapshotChanges 从 firebase 获取项目并返回它们。与我的组件相比,我订阅了数据并将主题存储在一个数组中。比我使用 ngFor 在卡片中显示数据。

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

为什么会发生这种情况,我应该怎么做才能解决它?

谢谢你:)

【问题讨论】:

    标签: javascript angular firebase rxjs google-cloud-firestore


    【解决方案1】:

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

    【讨论】:

    • 我想我解决了。我使用 ngOnDestroy 取消订阅数据的获取,现在我删除了它,所以即使我更改了路由,我仍然在订阅。这是解决问题的好方法吗?
    • 除非您需要不同组件中的数据是的。
    猜你喜欢
    • 2015-09-01
    • 1970-01-01
    • 2017-12-15
    • 2017-12-27
    • 2020-06-18
    • 1970-01-01
    • 2016-05-26
    • 2019-05-16
    • 1970-01-01
    相关资源
    最近更新 更多