我正在尝试使用React创建一个天气应用。下面的代码触发对OpenWeatherMap的API的请求,然后尝试更新状态值。
const [data, setData] = useState()
const call = async e => {
e.preventDefault()
const url = -- target url --
const request = await fetch(url)
const results = await request.json()
if (results) { setData(results) }
console.log(data) /* this returns undefined */
console.log(results) /* this returns the actual data back from the API */
}
上面的“ 调用”功能正在呈现在名为App的组件内部。然后,App组件将渲染其他几个组件,其中之一具有触发该功能的形式。问题是,它没有更新状态。它已成功发出请求。我知道,因为它会将“ 结果”记录到控制台。但是在更新状态值后,当我记录状态值“ 数据”时,它会显示“ 未定义”。我尝试了各种解决方法,包括“ useEffect”,但没有运气。任何形式的帮助将不胜感激。