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

258
Vistas
Reaccionar Rerender en caso de desactivación de caché en Chrome

Tengo una aplicación de reacción en la que estoy usando 'reaccionar-imagen-pan-zoom-rotar' para mostrar imágenes.

https://github.com/mgorabbani/react-image-pan-zoom-rotate

Básicamente, tengo una URL de servicio externo que proporciona la imagen que estoy pasando a las dos bibliotecas a continuación para representar la imagen.

Recientemente, comencé a enfrentar un problema (solo en Chrome) en el que, si el caché está deshabilitado, cada vez que hago clic en la imagen en el navegador o uso cualquier control proporcionado por este componente, lo vuelve a generar, lo que resulta en otra llamada al servidor de imágenes externo. Y esto sucede cada vez que hago clic o interactúo con la imagen o la vista generada por la biblioteca de reacción anterior.

Ahora comencé a usar https://github.com/theanam/react-awesome-lightbox/blob/master/src/index.js y no tiene tales problemas con el caché deshabilitado.

¿Alguna idea de por qué esto podría estar sucediendo?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Reproduciendo el problema

Puedo reproducir el comportamiento que describe: https://codesandbox.io/s/n1rv671pkj deshabilitar el caché hace que la imagen se vuelva a descargar cada vez.

El problema

Esto se debe a su implementación (que se puede ver aquí https://github.com/mgorabbani/react-image-pan-zoom-rotate/blob/master/src/PanViewer.tsx ) donde establecen key={dx}

 <StyledReactPanZoom zoom={zoom} pandx={dx} pandy={dy} onPan={onPan} rotation={rotation} key={dx} > <img style={{ transform: `rotate(${rotation * 90}deg)`, }} src={image} alt={alt} ref={ref} /> </StyledReactPanZoom>

Explicación

Esto le indica a reaccionar que cree una instancia de un nuevo componente cada vez que cambia la coordenada x de la imagen y sin caché, lo que significa volver a descargar la imagen (intente moverse solo verticalmente y no verá ninguna recarga). Para comprender por qué la propiedad clave provoca una nueva instancia, consulte los documentos de reacción y esta respuesta en Comprensión de claves únicas para elementos secundarios de matriz en React.js

Aquí hay una idea general de la explicación de la respuesta vinculada anteriormente:

React usa la propiedad clave para comprender la relación entre el componente y el elemento DOM, que luego se usa para el proceso de reconciliación . Por lo tanto, es muy importante que la clave siempre sea única,

...

También es importante que estas teclas permanezcan estáticas durante todos los renderizados para mantener el mejor rendimiento.

Solución

Creé una caja de arena donde solo eliminé esa línea y efectivamente deja de recargar la imagen.

https://codesandbox.io/s/react-image-pan-zoom-rotate-forked-tn787?file=/src/index.tsx

over 4 years ago · Santiago Trujillo 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