React Native Expo中如何查看Axios错误完整信息?
解决Expo中Axios网络错误仅显示“Network error”的问题
在Expo环境下,Axios的错误日志默认会被简化,不像Web端那样直接展示完整对象。可以通过以下几种方式获取完整的错误/响应信息:
手动打印错误对象的深层属性
Axios的错误对象包含多个关键字段,你可以在catch块里针对性打印:try { const res = await axios.get('你的接口地址'); } catch (err) { console.log('完整错误对象:', err); // 分情况打印细节 if (err.response) { // 服务器返回了响应(状态码非2xx) console.log('状态码:', err.response.status); console.log('响应数据:', err.response.data); console.log('响应头:', err.response.headers); } else if (err.request) { // 请求已发送但未收到响应 console.log('请求详情:', err.request); } else { // 请求配置或初始化阶段出错 console.log('错误描述:', err.message); console.log('请求配置:', err.config); } }强制展开日志层级
Expo默认的console.log可能会截断嵌套对象,改用console.dir强制展开所有层级:catch (err) { console.dir(err, { depth: null }); }也可以开启Expo的远程调试(在开发者菜单里选择"Debug Remote JS"),然后在Chrome浏览器的控制台里查看完整的错误对象,这里的日志不会被截断。
添加Axios全局拦截器
给Axios添加响应拦截器,统一处理错误日志,避免重复代码:axios.interceptors.response.use( res => res, err => { console.log('Axios错误详情:', { message: err.message, response: err.response, request: err.request, config: err.config }); return Promise.reject(err); } );
内容的提问来源于stack exchange,提问作者I Love Lebanon
相关产品推荐
相关产品推荐

