Reactjs 我正在尝试使用react从Api获取数据,一个Api依赖于;id";第二个';这是一个,
这是我的代码,第一次抓取返回良好的数据,但第二次抓取只带来承诺Reactjs 我正在尝试使用react从Api获取数据,一个Api依赖于;id";第二个';这是一个,,reactjs,api,async-await,axios,fetch,Reactjs,Api,Async Await,Axios,Fetch,这是我的代码,第一次抓取返回良好的数据,但第二次抓取只带来承诺 const data = await axios.get( `${API_URL}/${id}` ); return data.data; }; const fetchData = async () => { setLoading(true); const res = await axios.get("${API_URL}"); setData(
const data = await axios.get(
`${API_URL}/${id}`
);
return data.data;
};
const fetchData = async () => {
setLoading(true);
const res = await axios.get("${API_URL}");
setData(
res.data.map(el => {
const fromApi = fetchIncomes(el.id);
return {
...el,
...fromApi
};
})
)
setLoading(false);
};
您需要等待
返回的承诺
试试这个:
const fetchIncomes = async (id) => {
const data = await axios.get(`${API_URL}/${id}`);
return data.data;
};
const fetchData = async () => {
setLoading(true);
const res = await axios.get("${API_URL}");
// Create array of promises
const promises = res.data.map(el => {
return fetchIncomes(el.id)
.then(fromApi => {
return {
...el,
...fromApi
};
});
});
// Await all promises to resolve
const newData = await Promise.all(promises);
// Update state with new data
setData(newData);
setLoading(false);
};
注意:如果您愿意,还可以使用async Wait作为承诺数组:
const promises = res.data.map(async (el) => {
const fromApi = await fetchIncomes(el.id);
return {
...el,
...fromApi
};
});
您需要等待返回的承诺
试试这个:
const fetchIncomes = async (id) => {
const data = await axios.get(`${API_URL}/${id}`);
return data.data;
};
const fetchData = async () => {
setLoading(true);
const res = await axios.get("${API_URL}");
// Create array of promises
const promises = res.data.map(el => {
return fetchIncomes(el.id)
.then(fromApi => {
return {
...el,
...fromApi
};
});
});
// Await all promises to resolve
const newData = await Promise.all(promises);
// Update state with new data
setData(newData);
setLoading(false);
};
注意:如果您愿意,还可以使用async Wait作为承诺数组:
const promises = res.data.map(async (el) => {
const fromApi = await fetchIncomes(el.id);
return {
...el,
...fromApi
};
});
您好:)我还有一个问题,因为现在页面仅在刷新后加载,我如何解决它?您好:)我还有一个问题,因为现在页面仅在刷新后加载,我如何解决它?