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

135
Visualizações
AgGridReact abrir tabla en nueva ventana

Estoy tratando de usar la nueva función Portal de React para abrir un componente AgGridReact en una ventana emergente. Sin embargo, el problema con el que me encuentro es cuando abro el componente en una nueva ventana, las funciones de la tabla no funcionan mientras el cursor del mouse está en la ventana emergente. Sin embargo, si arrastro mi mouse a la ventana original, el componente comienza a funcionar, permitiéndome cambiar el tamaño de las columnas mientras mi mouse está sobre la ventana original y no sobre la ventana emergente.

Específicamente, estoy creando un nuevo html, luego llamo

 ReactDOM.createPortal(this.props.children, this.containerEl) ( containerEl

siendo el elemento html creado). Luego adjunto el nuevo elemento a la ventana externa creada. luego paso

 containerEl

como el

 popupParent

al componente AgGridReact. Si alguien quisiera ver más código, puedo publicarlo según sea necesario. Pero cualquier ayuda o sugerencia sería muy apreciada.

Dónde se representa AgGridReact

 const [openedElement, setOpenedElement] = useState() const updateOpenedElement = val => { !openedElement && setOpenedElement(val) } <AgGridReact ... popupParent={openedElement? openedElement: window.document.getElementById("root")} ... > </AgGridReact>)

Y el código para NewWindow es el siguiente

 const copyStyles = (sourceDoc, targetDoc) => {...}​ class NewWindow extends React.Component { constructor(props) { super(props) this.setOpenedElement = props.setOpenedElement this.containerEl = document.createElement('div') this.externalWindow = null } render() { this.setOpenedElement(this.containerEl) return ReactDOM.createPortal(this.props.children, this.containerEl) } componentDidMount() { this.externalWindow = window.open("", "", "width=600, height=400, left=200, top=200") copyStyles(document, this.externalWindow.document) this.externalWindow.document.body.appendChild(this.containerEl) }​ componentWillUnmount() { this.externalWindow.close() } }

setOpenedElement se llama en un componente principal, que estoy usando para crear el elemento que usará popupParent.

about 4 years ago · Juan Pablo Isaza
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