我想首先从地理定位API获取坐标,然后借助从第一个API调用获得的坐标获取天气条件。
const { data: cords } = useQuery("cords", () => {
navigator.geolocation.getCurrentPosition((position) => {
});
});
const { isLoading, isError, error, data } = useQuery(["weather"], () => {
return axios.get(
`https://api.openweathermap.org/data/2.5/weather?lat=${lat}&lon=${lon}&appid=myapikey`
);
});
对于第二个查询,您必须对依赖查询使用enabled
运算符。
您可以执行enabled: !!cords
,以便在有cords
时执行它。
编辑:
在你的情况下,它会是这样的:
const { isLoading, isError, error, data } = useQuery(["weather"], () => {
return (
axios.get(
`https://api.openweathermap.org/data/2.5/weather?lat=${lat}&lon=${lon}&appid=myapikey`
),
{
enabled: !!cords,
}
);
});
这样,第二个查询将仅在cords
有值时激发,并且它将在每次更新cords
值时激发。