【发布时间】:2021-07-22 16:11:05
【问题描述】:
我是新手,我想根据函数参数发出 Axios.get() 请求。这是我尝试过的。
const mentorName = (value) => {
try {
Axios.get(
`${BASE_URL}/api/v1/consultations/${value}`
).then(res => {
if (res.status !== 200 || res.data.status !== "success") {
console.log(res)
return
}
})
} catch (error) {
console.log(error)
}
}
但它没有工作,因为 res 没有在控制台中打印。这有什么问题?
运行良好的代码是:
const mentorName = (value) => {
try {
const res = Axios.get(
`${BASE_URL}/api/v1/consultations/${value}`
)
if (res.status !== 200 || res.data.status !== "success") {
console.log(res)
return
}
} catch (error) {
console.log(error)
}
}
以下代码运行良好,但返回包装在承诺中的信息。现在如何访问它,因为 res.data 不是有效属性。
【问题讨论】:
-
你检查过响应的状态码实际上是什么吗?因为如果代码不是专门为 200,
console.log将不会发生。通过查看您显示的代码,问题也可能出在 API 中。 -
我已经编辑了我的问题,请再看一遍。状态码是 200。
-
你试过
awaitingaxios.get()吗? -
是的,我做到了。但它显示了 Objects 作为 React child 无效的错误。我在网上搜索,解决方案是将 useEffect 与异步一起使用。但是如何有效地使用它进行函数调用呢?
-
在第一个示例中,如果状态码为 200 且 data.status 为“成功”,您将看不到任何输出。你就是这样写的。将
else案例中的输出显示到您的if语句中怎么样?您的第二个“工作”示例令人分心。您正在测试somePromise.status不是 200。它不是。它是未定义的,因此if语句“有效”也就不足为奇了。
标签: javascript reactjs axios