En mi código, quiero ejecutar una consulta condicionalmente y luego verificar su variable de carga dentro de la plantilla, pero solo si la consulta se ejecuta y no quiero tener ningún error de TypeScript en mi archivo. ¿Cómo verifico esta variable que podría o no existir en su contexto?
Estoy usando Apollo GraphQL.
if( executeMyQuery ) { const { data, loading: loadingQuery } = useQuery( MyQuery ); } return ( <View> { /* ... some code ... */ } { executeMyQuery && loadingQuery ? <Text>Query is loading...</Text> { /* ... some code ... */ } : null } </View> ); TypeScript dice: Cannot find name 'loadingQuery'.
Eche un vistazo a las consultas dependientes
const { data, loading: loadingQuery } = useQuery( MyQuery, { // The query will not execute until the userId exists enabled: executeMyQuery, } ); return ( <View> { /* ... some code ... */ } { executeMyQuery && loadingQuery ? <Text>Query is loading...</Text> { /* ... some code ... */ } : null } </View> );Se arregló usando el parámetro de skip cambiando
if( executeMyQuery ) { const { data, loading: loadingQuery } = useQuery( MyQuery ); }A
const { data, loading: loadingQuery } = useQuery( MyQuery, { skip: executeMyQuery, } );