我有两个api调用,第二个是依赖于第一个api调用



我想首先从地理定位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值时激发。

相关内容

  • 没有找到相关文章

最新更新