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

209
Vistas
¿Cómo hago que una alternancia guarde su estado entre React Routes?

Estoy tratando de construir un interruptor de modo oscuro en JS usando React. Estoy usando Material-UI para diseñar mi página y he logrado que el botón cambie el tema de toda mi página cuando se hace clic. Mi problema es que cada vez que actualizo o cambio las rutas, el estado del botón no se transfiere. ¿Hay algo que me estoy perdiendo?

Este es el código de mi botón:

 export default function ThemeSwitch({ toggleDark, settoggleDark }) { const handleModeChange = () => { settoggleDark(!toggleDark); }; return ( <div className="theme-btn"> <IOSSwitch checked={toggleDark} onChange={handleModeChange} name="toggleDark" color="default" /> </div> ); }

Y esta es mi App.js:

 function App() { const [toggleDark, settoggleDark] = useState(false); const myTheme = createTheme({ palette: { mode: toggleDark ? "dark" : "light", primary: { main: "#ff1744", }, secondary: { main: "#880e4f", }, }, }); return ( <Router> <ThemeProvider theme={myTheme}> <CssBaseline /> <Navbar /> <ThemeSwitch toggleDark={toggleDark} settoggleDark={settoggleDark} className="theme-btn" /> <UserAuthContextProvider> <Routes> <Route path="/" element={ <ProtectedRoute> <Hero /> </ProtectedRoute> } /> <Route path="signup" element={<SignUp />} /> <Route path="signin" element={<SignIn />} /> </Routes> </UserAuthContextProvider> </ThemeProvider> </Router> ); }
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Para mantener el valor, puede usar localStorage en lugar de reaccionar al estado.

Siempre que configure el estado, guárdelo en el almacenamiento local como:

 localStorage.setItem("toggleDark", true);

Y obtener el estado usando

 localStorage.getItem("toggleDark");
about 4 years ago · Juan Pablo Isaza 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