Как обновить один массив из двух разных компонентов, открытых на двух разных вкладках в Angular9? - PullRequest
0 голосов
/ 26 мая 2020

Я создаю сайт электронной коммерции, в котором внедряю компонент добавления в корзину, который позволяет пользователям добавлять товар в корзину и просматривать элементы в корзине. Я использую массив для отслеживания добавленные элементы в корзину, элементы могут быть добавлены двумя компонентами, с главной страницы и страницы сведений об элементе, при нажатии страница сведений об элементе открывается в новой вкладке, моя проблема возникает после того, как страница сведений об элементе открывается в новой вкладке обновляет свой собственный локальный массив корзины, который создает два массива, а не обновляет один одновременно.

Это функция, в которую я включил компоненты как на главной странице, так и на странице сведений об элементе,

addToCart(item_id){
this.dataTransmit.changeId(item_id);
}

это функция addToCart, которую я реализовал в другом компоненте,

ngOnInit(): void {
this.dataTransmit.currentItemId.subscribe(itemID => {
  this.addToCart(itemID);
});
}

addToCart(itemID){
let itemIdStr: string;
itemIdStr = itemID.toString();
this.cartItemList.push(itemID);
for (let i of this.cartItemList){
  console.log(i);
}
}   

А это мой служебный файл

 import { Injectable } from '@angular/core';
 import { BehaviorSubject } from 'rxjs';
 @Injectable({
   providedIn: 'root'
 })

 export class DataTransmitService {
 private itemId = new BehaviorSubject('');
 currentItemId = this.itemId.asObservable();

 changeId(itemID: any) {
  this.itemId.next(itemID);
  }
  }

Как мне решить эту проблему и сохранить единый массив, в котором хранятся продукты, выбранные на всех вкладках?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...