是否需要检查axios.get()
响应状态是否为200?
useEffect(() => {
const fetch = async () => {
try {
const response = await axios.get('/api');
if (response.status === 200) {
setState(response.data);
}
} catch (error) {
console.error(error);
}
};
fetch();
}, []);
或者我可以这么做
useEffect(() => {
const fetch = async () => {
try {
const { data } = await axios.get('/api');
setState(data);
} catch (error) {
console.error(error);
}
};
fetch();
}, []);
如果是,最佳做法是什么?
1条答案
按热度按时间sqyvllje1#
通常你不需要检查,但从技术上讲,这完全取决于你的团队如何解释HTTP协议。
尽管不鼓励这样做,但我看到过一些团队完全无视HTTP状态代码的标准语义,在几乎所有情况下都盲目地将状态代码设置为200,然后在数据负载中编码成功/失败状态,例如
data.success == true or false
。在这种情况下,检查状态代码毫无意义。Axios只是一个通过HTTP进行消息交换的库。真实的有用的是HTTP协议。您甚至可以自定义Axios来确定什么情况被认为是“错误”,如this question中所示。最好咨询您的后端同事,了解他们的服务器响应约定,并在您的团队中达成共识。