reactjs - 在 useEffect 中针对异步函数的 React Hook 警告
问题描述
const fetchAPIDataCountries = async () => {
try {
const response = await
axios.get('https://covid19.mathdro.id/api/countries');
const { data } = response
const { countries } = data
const newData = _.map(countries, item => ({ name: item.name }))
console.log("fetchCountries -> newData", countries)
return newData
} catch (error) {
return error;
}
}
useEffect(() => {
const fetchAPI = async () => {
let dataCountries = await fetchAPIDataCountries();
setCountries(dataCountries)`enter code here`;
};
return () => fetchAPI();
}, []);
我没有从 api 获取数据,但我尝试删除刚刚写return()
的,没关系。我不知道这里发生了什么,谁能解释一下。谢谢。useEffect()
fetchAPI()
解决方案
return () => fetchAPI()
用作 compoentWillUnmount() 生命周期方法,因此上面的代码将在组件 unmount 上执行。您必须执行以下操作
useEffect(() => {
const fetchAPI = async () => {
let dataCountries = await fetchAPIDataCountries();
setCountries(dataCountries)`enter code here`;
};
fetchAPI();
}, []);
推荐阅读
- python - 使用python计算每个事务之间的时间差
- javascript - 如何避免使用 vuejs 重复 websocket 客户端
- java - 如何使用 selenium java 将鼠标悬停在圆环图弧上?
- python - spacy中的重要名称实体识别
- image - matlab中的SVD用于图像压缩
- awk - 将 np.int64 函数添加到参数之一
- java - 当给定 Json 文件名作为输入“org.json.JSONException:JSONObject 文本必须在 1 [字符 2 第 1 行] 处以 '{' 开头”
- java - 自定义线程池 - 在不调用 start() 的情况下调用可运行
- hapi - 在验证 FHIR 配置文件时使用 FhirInstanceValidator 是否重要?
- python - 在 Django REST Framework (DRF) 中正确使用“可调用默认函数”