Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

143
Views
No se puede conservar el estado de un carrito (sitio web de comercio electrónico) en el almacenamiento local

Estoy tratando de conservar el estado de los artículos en mi carrito con la ayuda del almacenamiento local. Si bien puedo guardar los artículos en el almacenamiento local cuando se agrega un artículo, el carrito no persiste cuando actualizo la página.

No sé en qué parte de este código debo implementar el código "getItem" para persistir en el carrito de estado, incluso si la página se actualiza. Cualquier ayuda sería apreciada, adjuntando los archivos de código a continuación.

ProveedorCarrito.js

 import React from "react"; import CartContext from "./cart-context"; import { useReducer, useEffect } from "react"; const defaultCartState = { items: [], totalAmount: 0, }; const cartReducer = (state, action) => { let updatedItem; let updatedItems; if (action.type === "ADD_CART_ITEM") { updatedItem = { ...action.item }; updatedItems = state.items.concat(action.item); } const newTotalAmount = state.totalAmount + action.item.price; const localData = localStorage.getItem("cart"); return { items: updatedItems, totalAmount: newTotalAmount, }; }; export default function CartProvider(props) { const [cartState, dispatchCartAction] = useReducer( cartReducer, defaultCartState ); const addItemToCartHandler = (item) => { dispatchCartAction({ type: "ADD_CART_ITEM", item: item }); }; const removeItemFromCartHandler = (id) => { dispatchCartAction({ type: "REMOVE_CART_ITEM", id: id }); }; const cartContext = { items: cartState.items, totalAmount: cartState.totalAmount, addItem: addItemToCartHandler, removeItem: removeItemFromCartHandler, }; useEffect(() => { localStorage.setItem("cart", JSON.stringify(cartState.items)); }, [cartState.items]); return ( <CartContext.Provider value={cartContext}> {props.children} </CartContext.Provider> ); }
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

declare useEffect sin dependencia, por lo que solo se ejecutará una vez a través del ciclo de vida del componente en ese momento, puede verificar si existen datos en el almacenamiento local de lo que lo configuró, verifique el ejemplo a continuación.

 useEffect(() => { let items=JSON.parse(localStorage.getItem("cart")); if(items){ addItemToCartHandler (items) } }, []);
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!