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

202
Views
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 answers
Answer question

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 Report

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 Report

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 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!