Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

101
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!