Как я могу добавить sh товаров в корзину в React? - PullRequest
0 голосов
/ 05 августа 2020

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

Вот мой редуктор:

const initialState = {
    products: [],
    loading: false,
    basketNumbers: 0,
    cartCost: 0,
    numbers: 0,
    inCart: false
};

export default (state = initialState, action) => {
    switch (action.type) {
        case LOADING:
            return {
                ...state,
                products: [],
                loading: true,
                err: ''
            };

        case SUCCESS:
            return {
                ...state,
                products: action.payload,
                loading: false,
                err: ''
            };
        case ADD_PRODUCT_BASKET:
            let numbers = (state.numbers += 1);
            let inCart = (state.inCart = true);
            
            return {
                ...state,
                basketNumbers: state.basketNumbers + 1,
                cartCost: state.cartCost + action.payload.price,
                product: action.payload,
                numbers: numbers,
                inCart: inCart
            };
}

и вот моя страница корзины:

let productsInCart = [];

if (basketProps.inCart) {
    productsInCart.push(basketProps.product);
}
console.log(basketProps);
console.log(productsInCart);

Я пытался сделать это в редукторе:

let product = []
product.push(action.payload)
console.log(product)

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

Вот мой проект на github, если вы хотите посмотреть мой код: https://github.com/nathannewyen/the-beuter

1 Ответ

0 голосов
/ 05 августа 2020

Если вы хотите сохранить все товары в корзине, попробуйте использовать оператор распространения.

Например:

case ADD_PRODUCT_BASKET:
        return {
            ...state,
            products: [...products, action.payload],
            loading: false,
            err: ''
        };

Это сохранит ваше предыдущее ios состояние со всеми продуктами data и добавьте новый элемент в массив.

...