Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

210
Visualizações
no renderizar nueva pantalla usecontext usestate reaccionar objeto booleano simple

estoy usando useState para almacenar un objeto, con una propiedad booleana, y usando el operador ternario para cambiar entre pantallas.

cuando hago clic en el botón, veo en la consola que el valor ha cambiado pero la pantalla no se actualiza, no muestra "Estoy dentro", la consola muestra esto:

 {logged: false, name: 'example'} Login.js:7 {logged: true, name: 'example'} Login.js:9

Cuando cambio el useState a una sola variable, no un objeto, funciona (cambiando los niños), pero realmente quiero usarlo con un objeto. Entonces, quiero saber por qué no funciona, ¿es alguna propiedad de useContext? o limitación en useState? mientras tanto, usaré useState con una sola asignación (booleana) y varias líneas de variables

La razón para usar useContext es para transmitir las variables, en el caso de muchas capas de niños

Aplicación.js

 import React, { useState } from "react" import AppMain from './Components/AppMain'; import Login from './Components/Login'; import ExampleContext from "./ExampleContext"; function App() { const [user, setuser] = useState({"logged" : false, name: "example"}) return ( <ExampleContext.Provider value={{ user, setuser }}> {user.logged? <AppMain />:<Login />} </ExampleContext.Provider> ); } export default App;

AppMain.js

 import React from "react" function AppMain() { return ( <> <p>I'm in</p> </> ) } export default AppMain

Iniciar sesión.js

 import React, { useContext } from "react" import ExampleContext from "../ExampleContext" function Login() { const {user,setuser} = useContext(ExampleContext) function log(){ console.log(user) setuser(a=> {a.logged = true; return a}) console.log(user) } return ( <> <button onClick={log} >Log in</button> </> ) } export default Login

EjemploContexto.js

 import { createContext } from "react" const ExampleContext = createContext() export default ExampleContext
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

No hay nada malo con useState o useContext, su forma de mutar el estado es incorrecta. configurarlo de esta manera:

 setuser(a=>({...a,logged:true}));
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda