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

148
Visualizações
¿Cómo actualizaría el estado local de un componente completo en Gatsby?

Me gustaría crear una notificación simple con un botón para descartar en un sitio React estático. Digamos que tengo mi componente configurado así:

 // layout.js import * as React from 'react' const Layout = ({showNotification = true}) => <div> <header>HEADER</header> {showNotification ? <div style={{display: showNotification ? "flex" : "none"}}> NOTIFICATION <span onClick={() => {showNotification = false}}> DISMISS </span> </div> : null} <main>MAIN CONTENT</main> <footer>FOOTER</footer> </div> export default Layout

Espero que, dado que la propiedad de display se establece en función del valor de showNotification y dado que onClick actualiza el valor de showNotification, hacer clic en el intervalo "Descartar" ocultaría toda la notificación.

Sin embargo, por lo que puedo decir, se llama al controlador onClick y actualiza el valor de showNotifications, pero eso no se refleja en el renderizado.

¿Cómo puedo configurar esto para que pueda hacer que onClick actualice el estado del componente de una manera que se refleje en el resto del componente?

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

showNotification es un accesorio. No se puede cambiar directamente. Además de showNotification, debe pasar una función que cambia el estado en el componente donde se establece el estado. Aquí hay un ejemplo:

 import React, {useState} from 'react' const App = () => { const [showNotification, setShowNotification] = useState(true) const toggleShow = () => setShowNotification(!showNotification) return ( <div> Some content <Layout showNotification={showNotification} toggleShow={toggleShow} /> </div> ) } export const Layout = ({showNotification, toggleShow}) => <div> <header>HEADER</header> {showNotification ? <div style={{display: showNotification ? "flex" : "none"}}> NOTIFICATION <span onClick={toggleShow}> DISMISS </span> </div> : null} <main>MAIN CONTENT</main> <footer>FOOTER</footer> </div> export default App
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