Estoy presentando contenido de reacción en una página a través de un complemento, por lo que no tengo control sobre la página principal que usa mi contenido. El caso es que a veces uso el ciclo de vida del componentDidMount para desplazarme a un elemento específico en mi página.
Hay casos en los que la página principal usa modales para el consentimiento (RGPD) cuando se carga una página, por lo que mi contenido se carga correctamente y mi componentDidMount y mi método de desplazamiento se están ejecutando. Excepto que la página que está representando este modal está bloqueando el desplazamiento. Incluso cuando el modal está cerrado, mi función ya se ejecutó, por lo que no se desplaza.
Pensé en escuchar algunos cambios con MutationObserver , pero no lo hará consistente ya que hay varios "padres" que pueden representar mi contenido para configurar muchos MutationObservers diferentes.
También pensé en tal vez otro método de ciclo de vida que podría detectar si mi contenido está bloqueado o parcialmente renderizado o algo así.
Simplemente no tengo idea de cómo abordar este tema.
Aquí hay algo de código:
componentDidMount = () => { if (typeof window !== "undefined") { const pageAnchor = window.location.hash.slice(1); const argumentRegex = /argument_\d+/; const argumentAnchor = pageAnchor.match(argumentRegex); if (argumentAnchor) { const argumentId = this.getId(); if (argumentAnchor[0] === argumentId) { scroller.scrollTo(argumentId, { duration: 1000, smooth: false, offset: -80 }); } } } };