Tengo una funcionalidad de descarga donde estoy descargando
const csvLink = createRef(); const dropdown = ( <div onClick={refetch}> {safeLabel(messages.csv)} <Icon name="pull" /> {isSuccess ? <CSVLink ref={csvLink} data={data?.data}></CSVLink> : null} </div> ); const onsuccess = (response) => { csvLink?.current?.link?.click(); }; const { refetch, data, isSuccess } = useQuery( "apicall", () => fetchData(headers), { enabled: false, onSuccess: onsuccess } ); Entonces, aquí, cuando hago clic en el ícono, se llama a la consulta de tiempo y me envía una respuesta que la paso al csvLink e intento descargar el csv. Ahora, debido a csvLink?.current?.link?.click(); llamado en caso de éxito de la consulta, esta refetch se está llamando en un bucle infinito. ¿Dónde llamar a este clic y cómo solucionar este problema?
Gracias.
Debe usar useRef en lugar de createRef
const csvLink = useRef();createRef: la función crea una nueva referencia cada vez que se vuelve a renderizar.
useRef: la función usa la misma referencia en todas partes. Guarda su valor entre renderizaciones en un componente funcional y no crea una nueva instancia de la referencia para cada renderización.