| 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: 6 let
|
|||
0