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

364
Visualizações
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 Respostas
Responde à pergunta

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 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