Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.0k views
in Technique[技术] by (71.8m points)

javascript - Unhandled Runtime Error TypeError: Invalid attempt to spread non-iterable instance

I am getting this error when i try add-to-cart.

Unhandled Runtime Error.
TypeError: Invalid attempt to spread non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.
import { createSlice, createAsyncThunk } from '@reduxjs/toolkit';
import { baseURL } from '../../api/config/config';
import axios from 'axios';

export const getCartItemsLocalStorage = createAsyncThunk(
    "cartitems/getCartItems",
    async (val, thunkAPI) => {
        let cartItemFromLocalStoarge = await JSON.parse(localStorage.getItem("cart"));
        return cartItemFromLocalStoarge;
    }
)

export const CartSlice = createSlice({
    name: 'cart',
    initialState: {
        products: [],
        cart: [],
    },
    reducers: {
        addToCart: (state, action) => {
            let actionId = action.payload;
            const item = state.products.find((prod) => prod.id === actionId)

            // Check if  item already exist in cart 
            const inCart = state.cart !== null ? state.cart.find((item) => item.id === actionId ? true : false) : null;
            state.cart = inCart
                ? state.cart.map(item =>
                    item.id === actionId
                        ? { ...item, quantity: item.quantity + 1 }
                        : item
                )
                : [...state.cart, {...item, quantity: 1 }]
            
            localStorage.setItem("cart", JSON.stringify(state.cart))

        },

    });
}

export const { addToCart }  = CartSlice.actions;

export default CartSlice.reducer;
question from:https://stackoverflow.com/questions/65847379/unhandled-runtime-error-typeerror-invalid-attempt-to-spread-non-iterable-instan

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

Please log in or register to reply this article.

OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...