Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

203
Vistas
localStorage.getItem() no recupera datos en la actualización de la página - ReactJs (TypeScript)

Estoy tratando de crear una aplicación de lista de tareas con ReactJs, trabajando con localStorage , setItem() funciona bien, pero getItem() no devuelve nada excepto una matriz vacía.

  • estoy usando || "" porque JSON.parse() devuelve string || null en TypeScript.
 useEffect(() => { localStorage.setItem("todos", JSON.stringify(todos)); }, [todos]); useEffect(() => { const items = JSON.parse(localStorage.getItem("todos") || ""); if (items) { setTodos(items); } }, []);

Aquí es donde proporciono datos a todos

 const [todos, setTodos] = useState<todosObj[]>([]); const [count, setCount] = useState(1); const [status, setStatus] = useState<"All" | "completed" | "uncompleted">( "All" ); const [inputText, setInputText] = useState(""); const [date, setDate] = useState(new Date()); const inputHandler = (e: React.FormEvent<HTMLInputElement>) => { setInputText(e.currentTarget.value); }; const submitHandler = (e: React.FormEvent<HTMLButtonElement>) => { e.preventDefault(); setCount(count + 1); if (inputText !== "") { setTodos([ ...todos, { id: count, text: inputText, completed: false, date: date, }, ]); } setInputText(""); };
about 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Lo siento, no tengo suficiente reputación para comentar, así que tengo que publicarlo como respuesta:

¿Están configurados los datos iniciales para todos ? Es mejor si puede proporcionar dónde proporciona datos a todos .

about 4 years ago · Santiago Trujillo Denunciar

0

useEffect(() => { const stringifyTodos = JSON.stringify(todos) localStorage.setItem("todos", stringifyTodos); }, [todos]); useEffect(() => { const storedTodos = localStorage.getItem("todos") const items = JSON.parse(storedTodos); if (items) { setTodos(items); } }, []);

Prueba de esta manera, creo que funcionará.

about 4 years ago · Santiago Trujillo Denunciar

0

Solucioné el problema inicializando el estado de todos por getItem()
como esto :

 const [todos, setTodos] = useState<todosObj[]>( JSON.parse(localStorage.getItem("todos") || "") || [] );

Si alguien sabe la razón por la que no funcionaba, por favor dígame.

about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda