Tengo la siguiente función useQuery
const useQueryBlob = (url: string) => { return useQuery<Blob>( 'blob', async () => { const { data: blob } = await axios.get<Blob>(url, { responseType: 'blob' }); return blob; }, ); }; La url que quiero pasar es someData de useQueryTest
const { data: someData } = useQueryTest('test'); const { data: blob } = useQueryBlob(someData); Sin embargo, someData siempre está undefined en el primer procesamiento, por lo que la url que se pasa a useQueryBlob también está undefined .
¿Cómo me aseguro de que la url pasada a useQueryBlob no esté undefined en el primer renderizado?
Puede hacer uso del booleano enabled . Esto deshabilitará la ejecución automática de la consulta hasta que enable se establezca en true .
const useQueryBlob = (url: string | undefined) => { return useQuery<Blob>( 'blob', async () => { const { data: blob } = await axios.get<Blob>(url, { responseType: 'blob' }); return blob; }, { enabled: !!url } ); };