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

361
Views
React.js modal no aparece como debería

Estoy lidiando con un problema extraño relacionado con modales/portales en React.js.

El problema es que el modal no aparece como una ventana emergente sobre los otros elementos de la pantalla. He estado revisando la documentación pero no puedo detectar mi error.

El siguiente código es para el modal llamado "Iniciar sesión", así como para los archivos de la "Aplicación".

Iniciar sesión.js

 import React from "react"; import ReactDOM from "react-dom" const SignIn =({message,isopen,onclose})=>{ if(!isopen) return null; return ReactDOM.createPortal( <div className="modal"> <h2>{message}</h2> <button onClick={onclose}>Close</button> </div>, document.body ); }; export default SignIn;

Aplicación.js

 import SignIn from "./Components/Modal/SignIn"; const App = ()=>{ const [currentPaneName, setCurrentPaneName]=useState("MainPane"); const [modalOpen, setModalOpen]=useState(false); return( <React.Fragment> <Header onNewPaneSelected={updateCurrentPane} /> <div> <SignIn message="This is a test modal" isopen={modalOpen} onclose={()=>setModalOpen(false)} /> </div> <main> <button onClick={()=>setModalOpen(true)}>Open Modal</button> <LoadPaneHandler /> </main> {/* <Footer /> */} </React.Fragment> ); } export default App;

He omitido código que no era relevante, por eso puede parecer que faltan cosas.

El resultado de esto cuando ejecuto el sitio web es este... ingrese la descripción de la imagen aquí

Aparece el botón para abrir el modal, pero cuando se hace clic, abre el texto y el botón para cerrarlo en la parte inferior de la pantalla y no sobre los otros contenidos como debería hacerlo un modal. Todos los demás elementos de la interfaz de usuario se pueden usar por completo mientras esto sucede.

Como dije, he repasado este problema varias veces y no puedo detectar mi error. ¡Cualquier sugerencia sería muy apreciada!

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Descubrí la causa. Pensé que solo se necesitaba el código Javascript para crear un modal funcional. Una vez agregué un archivo CSS que especificaba elementos como...

  • Posición
  • Arriba / Abajo / Izquierda / Derecha
  • Color de fondo (con un valor de transparencia)
  • etc...

¡El modal comenzó a funcionar exactamente como debería! No estoy seguro de por qué creía que funcionaría sin esto, pero estaba claramente equivocado.

Aquí hay un ejemplo del CSS que usé para hacer que esto funcione.

 .modal { position: fixed; left: 0; right: 0; top: 0; bottom: 0; background-color: rgb(0, 0, 0, 0.5); display: flex; align-items: center; justify-content: center; }

También he incluido una imagen del modal en el trabajo. Ignore los colores feos, son marcadores de posición mientras experimento.

ingrese la descripción de la imagen aquí

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!