Я использую вкладки и не могу обновлять страницу каждый раз, когда я снова захожу на страницу. Я использую ionic 4, поэтому я не могу использовать navController.
Я использовал ionViewWillEnter()
для отображения данных из базы данных в моем приложении, и это работает, но каждый раз, когда я перехожу на другую страницу и возвращаюсь на страницу, она повторяет данные. (например, я отображаю 5 данных из базы данных. Когда я перехожу на другую страницу и повторно захожу на страницу, она отображает 10 (повторяя те же данные), затем 15, 20, 25 ... и т. д.).
food.page.html
<ion-list *ngIf="showFood">
<ion-row *ngFor='let FoodFruit of showTypeOfFood("fruit")'>
<ion-col>
<ion-card>
<div class="card-title">{{FoodFruit.wtitle}}</div>
</ion-card>
</ion-col>
</ion-row>
</ion-list>
food.page.ts
ionViewWillEnter(){
this.currentUser = this.afAuth.auth.currentUser;
if(this.currentUser == null){
this.showFood = false;
}
else{
this.showPersonalFood();
}
}
showPersonalFood(){
this.afAuth.auth.onAuthStateChanged(
(user)=>{
if(user){
this.showFood = true;
this.afDatabase.object('foods/').snapshotChanges().subscribe(
(action)=>{
if(action.payload.val())
{
console.log(action.payload.val());
let items: any = action.payload.val();
items.forEach(
(food) =>{
this.foods.push(food);
}
);
}
else
{
console.log("No Data");
}
});
}
}
);
}
showTypeOfFood(type)
{
let items:any = [];
this.foods.forEach((Food)=>{
if(Food.wtype == type)
{
items.push(Food);
}
});
return items;
}
Здесь showTypeOfFood - это просто функция для отображения данных из базы данных.
Таким образом, он отлично показывает данные на вкладке «Еда», но не обновляет, не очищает кэш и не удаляет предыдущие данные. Как мне этого добиться?