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

328
Vistas
Mantener el valor de la casilla de verificación en Storage React local

Estoy tratando de guardar el valor de las casillas de verificación en el almacenamiento local, de modo que cuando el usuario vuelva a cargar la página, permanezcan marcadas/sin marcar. Tengo un estado "isChecked" y una función handleOnChange.

Lo que intento hacer es almacenar el valor en el estado, y cada vez que se ejecuta la función onChange, configuro la tecla 'casilla de verificación' en el almacenamiento local con el valor de la casilla de verificación.

así es como se ve mi componente

 import React from "react"; import { useState, useEffect } from "react"; const Pdf = (props) => { const [shown, setShown] = useState(false); const [isChecked, setIsChecked] = useState(localStorage.getItem('checkbox') === 'true'); const handleOnChange = (e) => { setIsChecked(localStorage.getItem('checkbox')); localStorage.setItem('checkbox',`${e.target.checked}`) } const toggle = () => { setShown((prevState) => !prevState); alert(isChecked) }; return ( <div className="pdfContainer row container justify-content-center"> <section className="justify-content-center"> <h1 className="row justify-content-center h1--style"> Κεφάλαιο {props.id} </h1> <p className="row justify-content-center p--style">{props.info}</p> </section> <button onClick={toggle} className=" shadow button--style"> Μάθημα {props.id} </button> {shown && <embed className=" pdf" src={props.pdf} />} <div className="pdfChecked input-group-text input-group "> <input type="checkbox" id='pdfchecked' name="pdfChecked" value='1' checked={isChecked} onChange={handleOnChange} /> <label className="input--label"> Διάβασα το κεφάλαιο!</label> </div> </div> ); }; export default Pdf;

Entiendo que esto tiene muchos errores y no es como se supone que debes hacerlo. Encontré el concepto de almacenamiento local difícil de comprender como principiante, y he intentado muchas formas de hacer que esto funcione. A partir de ahora, funciona un poco , lo que significa que cuando vuelvo a cargar la página permanece igual, ¡pero tengo que hacer clic en la casilla de verificación varias veces! TAN buggy. ¡Cualquier ayuda, especialmente dejarme saber por qué mi proceso de pensamiento es incorrecto, sería apreciada!

about 4 years ago · Juan Pablo Isaza
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