Autor | Zpráva | ||
---|---|---|---|
FesanCZ Profil |
Dobrý den, aktuálně řeším ukládání objektů do pole, potíž je v tom, že data se nepřidají, ale přepíšou. Nějaké nápady. Viz. kód
export function onClick(name: string, price: string) { let data = {'name': name, 'price': price}; //newData sessionStorage.setItem('newData', JSON.stringify(data)); let newData = JSON.parse(sessionStorage.getItem('newData')); //Cart let cartData = []; cartData.push(newData); sessionStorage.setItem('cart', JSON.stringify(cartData)); let cart = JSON.parse(sessionStorage.getItem('cart')); console.log(cart); //todo LOG } FesanCZ: Pozn. chci dosáhnout výsledku [ 0: {name:'test1',price:'150'} 1: {name:'test2',price:'180'} 2: {name:'test3',price:'190'} 3: {name:'test4',price:'150'} 4: {name:'test5',price:'180'} 5: {name:'test6',price:'190'} ] |
||
Radek9 Profil |
#2 · Zasláno: 9. 4. 2020, 16:33:17
FesanCZ:
Jsi si jistý, že chceš použít sessionStorage? Víš, jak funguje? Lepší by podle mě bylo localStorage. Každopádně by to mělo být takhle: export function onClick(name: string, price: string) { let item = { name, price } // Cart let cartStr = localStorage.getItem('cart') let cartData = cartStr ? JSON.parse(cartStr) : [] cartData.push(item) localStorage.setItem('cart', JSON.stringify(cartData)) } |
||
FesanCZ Profil |
#3 · Zasláno: 9. 4. 2020, 16:35:30
Radek9:
Vyřešil jsem to jiným způsobem. Neuvědomil jsem si, že data stále přepisuji. Tudíž jsem proměnou let cartData = [] dal mimo metodu
|
||
Radek9 Profil |
FesanCZ:
To ti nebude fungovat. Zkus schválně reloadnout stránku a něco přidat do košíku. Zase se přemaže. |
||
FesanCZ Profil |
#5 · Zasláno: 9. 4. 2020, 16:47:00
Radek9:
I po reloadu stránky zůstavají data uložené. Viz. kompletní metoda export let cartData: string[] = []; export function onClick(name: string, price: string) { let data = {'name': name, 'price': price}; //newData localStorage.setItem('newData', JSON.stringify(data)); let newData = JSON.parse(localStorage.getItem('newData')); //Cart cartData.push(newData); localStorage.setItem('cart', JSON.stringify(cartData)); let cart = JSON.parse(localStorage.getItem('cart')); console.log(cart); //todo LOG } |
||
Radek9 Profil |
FesanCZ:
Nevěřím. :-) Schválně si to vyzkoušej: Živá ukázka 1) Přidej něco do košíku. 2) Reloadni stránku. (V košíku je všechno, jak má být.) 3) Přidej něco do košíku. (Jejda!) |
||
FesanCZ Profil |
#7 · Zasláno: 9. 4. 2020, 21:28:37
Radek9:
Ano máte pravdu, nevšiml jsem si toho. Každopádně Váš kód funguje. Děkuji za pomoc :) |
||
Časová prodleva: 4 roky
|
0