【发布时间】:2020-08-09 11:49:44
【问题描述】:
效果以无限的重新渲染循环结束,它不断向 url 发出请求。基本上我所拥有的是获取国家/地区的 API 调用。然后基于过滤器输入,它呈现与搜索匹配的国家。如果只有一个结果,还应该获取并显示首都的天气信息。
我想重新渲染天气的唯一时间是国家/地区的值发生变化时。不知怎的,我无法让它工作..
let filtered = countries.filter(country => country.name.toUpperCase().includes(filter.toUpperCase()))
const [weather, setWeather] = useState([])
useEffect(() => {
if (filtered.length === 1) {
const country = filtered[0]
const api_key = process.env.REACT_APP_API_KEY
const url = `http://api.weatherstack.com/current?access_key=${api_key}&query=${country.capital}`
axios.get(url)
.then(response => {
setWeather(response.data.current)
})
}
}, [filtered])
【问题讨论】:
标签: reactjs react-hooks