javascript - Hooks 和 Api 调用
问题描述
我正在通过 AXIOS 调用我的 API。我的回复回来了,如果我检查我的网络,我可以看到它,但是当我 console.log 时它返回空数据:
useEffect(() => {
async function bt() {
const authAxios = axios.create({
headers: {
Authorization: `Bearer ${localStorage.getItem('token')}`,
},
});
const Data = await authAxios
.get('/tasks/')
.then((res) => {
console.log(res);
})
.catch((e) => {
console.log(e);
});
}
bt();
}, []);
解决方案
1 - 您在尝试解决承诺的同时使用了异步函数。要么摆脱异步并等待,要么摆脱“等待 authAxios”之后的所有内容(即捕获然后阻塞)
2 - res.data 控制台日志为空白的原因是因为 res.data 未定义尝试将该行更改为 res。检查响应对象以查看信息是否存在。
.then((res) => {
//console.log(res.data);
console.log(res)
setmessage(res.data);
// this.getUserUpdate(res.data)
console.log(res.data);
})
要使 res.data 正常工作,您需要确保您的 API 为响应创建了一个名为 data 的属性。如果这不起作用,我建议您还添加后端的外观。
推荐阅读
- python - 从 CSV 中分离字符串并打印它们
- java-6 - 如何在 Java 6 中使用 DirectoryStream?
- kotlin - Kotlin 中类名后的方括号
- jhipster - 在 Linux 机器上运行 Jhipster 生成的战争时出错
- matlab - 失败的 MATLAB 许可证是 try/catch 异常吗?
- javascript - 访问控制器角度js中的状态参数对象
- android - [Android][Kotlin] 使用 AudioRecord 实现带通滤波器并写入 16BIT PCM 文件
- javascript - 每次更改组件的状态时,图表都会再次绘制
- google-cloud-platform - 我对 DataFusion 数据管道有疑问
- laravel - Amazon SES 不发送到所有电子邮件,仅批准