当我在React中进行新的API调用时,如何更新相同的对象格式


if (lat !== 0 && lon !== 0) {
const fetchData = async () => {
const response = await axios(
` https://api.weatherapi.com/v1/current.json?key=${apiKey}&q=${lat},${lon}`
);
setLoading(false);
const results = response.data;
setWeatherData({
name: results.location.name,
country: results.location.country,
region: results.location.region,
temperature: results.current.temp_c,
description: results.current.condition.text,
icon: results.current.condition.icon,
humidity: results.current.humidity,
});

这是在网站渲染时设置的数据,它获取用户的当前位置并收集数据。然后我有一个输入框,用户可以在其中搜索一个城市,它会显示数据。

const handleSearch = async (e) => {
e.preventDefault();
setLoading(true);
if (search === '') return;
const response = await axios.get(
` https://api.weatherapi.com/v1/current.json?key=${apiKey}&q=${search}`
);
const results = response.data;
setWeatherData({
name: results.location.name,
country: results.location.country,
region: results.location.region,
temperature: results.current.temp_c,
description: results.current.condition.text,
icon: results.current.condition.icon,
humidity: results.current.humidity,
});

我不知道如何再次使用相同的格式,所以我复制了相同的对象,效果很好。如何设置数据而不是复制数据?谢谢

await axios.get(
` https://api.weatherapi.com/v1/current.json?key=${apiKey}&q=${search === '' ? lat + ',' + lon : search }`
);

你应该试试这个。

最新更新