Я не могу сохранить количество моих заказанных товаров в локальном хранилище с реакцией и javascript - PullRequest
0 голосов
/ 14 марта 2020

Я начинающий javascript разработчик. Я пытаюсь создать компонент для добавления товара в корзину с помощью React, используя локальное хранилище. Мне удается зарегистрировать идентификатор моего продукта, нажав на кнопку, но я не могу увеличить количество товара, заказанного более одного раза. Это мой композитор:

import React from 'react';
import {useParams} from 'react-router-dom';

function AddToBasket() {
const id = useParams().id;

let cartProduct = [];
let cartQty = [];

  function handleClick(AddToBasket,e) {

    if (localStorage.getItem('cartProduct') != null) {
        console.log(localStorage.getItem('cartProduct'));
        var localProduct = JSON.parse(localStorage.getItem('cartProduct'));
        var localQty = JSON.parse(localStorage.getItem('cartQty'));



        if (localProduct.indexOf(id)!== -1) { 
            var indexId = 0;
            indexId = localProduct.indexOf(id); 
            console.log(indexId);
            localProduct.forEach((indexId) => {
            localProduct.push(id);
            localQty++})
            localStorage.setItem('cartProduct', JSON.stringify(localProduct));
            localStorage.setItem('cartQty', JSON.stringify(localQty));
        }

        else {
            localProduct.push(id);
            localQty.push(1);
            console.log(cartProduct);
            localStorage.setItem('cartProduct', JSON.stringify(localProduct));
            localStorage.setItem('cartQty', JSON.stringify(localQty));
        }

    }

    else {
        cartProduct.push(id);
        cartQty.push(1);
        console.log(cartProduct);
        localStorage.setItem('cartProduct', JSON.stringify(cartProduct));
        localStorage.setItem('cartQty', JSON.stringify(cartQty));
    }

}

    return (
        <button onClick={handleClick}>Ajout au panier</button>
        )

}

export default AddToBasket;

Что не так с моим кодом? Заранее спасибо за Ваш отзыв

1 Ответ

0 голосов
/ 14 марта 2020

Когда компилятор достигает остальной части после нахождения определенного идентификатора, он всегда подталкивает 1 к количеству. Я не вижу здесь никакого увеличения. Таким образом, localQty многократно присваивается значение 1. Попробуйте увеличить значение. Вы используете простой JavaScript, здесь React не нужен. Если у вас нет полного понимания JS, пожалуйста, не переходите к ReactJS, так как вы можете ненавидеть библиотеку. Надеюсь, это поможет! ..

...