Я создаю сайт электронной коммерции, в котором внедряю компонент добавления в корзину, который позволяет пользователям добавлять товар в корзину и просматривать элементы в корзине. Я использую массив для отслеживания добавленные элементы в корзину, элементы могут быть добавлены двумя компонентами, с главной страницы и страницы сведений об элементе, при нажатии страница сведений об элементе открывается в новой вкладке, моя проблема возникает после того, как страница сведений об элементе открывается в новой вкладке обновляет свой собственный локальный массив корзины, который создает два массива, а не обновляет один одновременно.
Это функция, в которую я включил компоненты как на главной странице, так и на странице сведений об элементе,
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);
}
}
Как мне решить эту проблему и сохранить единый массив, в котором хранятся продукты, выбранные на всех вкладках?