Reactjs 如何将axios数据返回到提要视图?
我正在使用reactjs构建提要新闻,但是,我注意到Axios没有将数据返回到我的浏览器提要以处理数据,我在这段代码中遗漏了什么Reactjs 如何将axios数据返回到提要视图?,reactjs,axios,Reactjs,Axios,我正在使用reactjs构建提要新闻,但是,我注意到Axios没有将数据返回到我的浏览器提要以处理数据,我在这段代码中遗漏了什么 const browserFeed = async () => { const response = await browse(); console.log(response) setFeed(response.data.results); // undefined setIntialized(true); };
const browserFeed = async () => {
const response = await browse();
console.log(response)
setFeed(response.data.results); // undefined
setIntialized(true);
};
export const browse = () => {
axios.get('xxxxxxxxxxx').then((result) => {
return result // undefined
}).catch((error) => {
return error;
})
}
您无法返回承诺
axios。获取returns
export const browse = () => {
return axios.get('xxxxxxxxxxx').then((result) => {
return result;
}).catch((error) => {
return error;
});
};
不过,您可以简单地返回承诺,不需要链接另一个。然后
只返回解析值
export const browse = () => {
return axios.get('xxxxxxxxxxx').catch((error) => {
return error;
});
};
老实说,我认为您也不想在这里捕获并返回错误,因为编写组件逻辑是为了假设成功。您可以在try/catch
中返回承诺并处理任何被拒绝的承诺
export const browse = () => {
return axios.get('xxxxxxxxxxx');
};
但是这有点无聊,最好在组件中调用axios
。在try/catch
中包围所有提取逻辑,在happy success分支中设置提要,在sad failure分支中设置任何错误状态,并在finally
块中设置初始化状态,以便无论通过/失败,都可以指示数据已提取
const browserFeed = async () => {
try {
const response = await axios.get('xxxxxxxxxxx');
console.log(response)
setFeed(response.data.results);
} catch(error) {
// set any error state
} finally {
setInitialized(true);
}
};
这避免了async/await
语法与任何承诺链语法的混合,这是应该避免的