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

102
Visualizações
reactjs: muestra el diálogo en todas las páginas usando un componente de botón, donde sea que esté incluido

En mi aplicación de react , tengo un encabezado con un botón de mostrar diálogo.
Este componente de encabezado se incluye en todas las páginas según sea necesario.

Mi lógica actual para mostrar el diálogo es la siguiente:

  • Cuando el usuario hace clic en el botón, envío una acción a la tienda redux { type:SHOW_DIALOG } y dejo que el componente principal maneje el cambio de estado y dibuje el cuadro de diálogo. Estoy usando el componente de cajón deslizable material-UI .

Manejar el evento Click en un botón de icono en el componente de encabezado ...

 const handleClick = () => { /* * temporary bypass surgery to avoid going through login dialog * dispatch({type:'SHOW_CONTACT_INFO'}) * return; */ if (!isLoggedIn) dispatch({type: 'SHOW_LOGIN_DLG'}) else router.push('/my-account') }

En la página principal , donde se encuentra el encabezado...

 // ...other code <Container> {/* Whether or not to show the login dialog . */} {loginProcessState>=1 && loginProcessState<=7 ?<LoginDialog type={loginProcessState===1?"login":"otp"} /> : null} {/* if contact edit dialog is set to show, show it. */} {contactEditDisplay? <ProfileEditDialog />:null} </Container> );

Pero, como tengo muchas páginas (alrededor de 10 páginas y renderizado del lado del servidor con NextJS), tendré que repetir la gestión de estado en todas aquellas páginas donde se debe mostrar el diálogo.

Disculpe mi falta de conocimiento aquí. ¿Es posible evitar esta verificación de estado de diálogo en el componente / página principal? Si es así, ¿cómo puedo hacerlo?

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

0

Sugerencia:

  • Mueva el componente LoginDialog hacia arriba y renderícelo directamente dentro del componente raíz <App/> .

  • Y luego use React.useContext para llamar a ese dispatch en varios componentes para activar loginProcessState .

Lo anterior debería ayudarlo a representar el inicio de sesión en todos los componentes.

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