Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

366
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda