React axios api调用错误:未捕获(在承诺中)TypeError:setTempFetch不是函数
Posted
技术标签:
【中文标题】React axios api调用错误:未捕获(在承诺中)TypeError:setTempFetch不是函数【英文标题】:React axios api call error: Uncaught (in promise) TypeError: setTempFetch is not a function 【发布时间】:2021-10-10 02:16:38 【问题描述】:在 React 中尝试通过 axios 加载获取的数据时,我收到一条错误消息,提示设置我的状态的钩子函数不存在。这是因为我使用了 useEffect 并且可能我无法更改 useEffect 中的状态吗?
不确定代码有什么问题:
const tempFetch, setTempFetch = useState("Test load")
useEffect(()=>
fetchData()
, [])
const fetchData = async () =>
const config =
method: 'get',
url: 'http://127.0.0.1:8000/api/states/',
headers:
'Authorization': 'Basic amludHc6cG9rZW1vbmRwMjAxMkhQMTI1Mw=='
let response = await axios(config)
let data = await response.data
console.log("data:",data)
setTempFetch(data)
【问题讨论】:
useState
返回一个数组,而不是一个对象
【参考方案1】:
useState 钩子返回数组或两个元素。 第一个是值,第二个是设置值的处理程序。
我可以看到您已将 useState 返回值声明为对象
const tempFetch, setTempFetch = useState("Test load")
应该是这样的:
const [tempFetch, setTempFetch] = useState("Test load")
【讨论】:
以上是关于React axios api调用错误:未捕获(在承诺中)TypeError:setTempFetch不是函数的主要内容,如果未能解决你的问题,请参考以下文章
Axios GET请求在我的本地版本上运行,但在Heroku上失败-未捕获(承诺)错误:请求失败,状态码为500
未捕获的 ReferenceError:regeneratorRuntime 未在 react 17、webpack 5 中定义,同时通过操作进行 api 调用
React Axios API 调用与数组循环给出错误的顺序?
Laravel - React,强制 Axios 进行拒绝/捕获
为啥在 React 中,我的 axios API 调用有 Authorization Header,其中包含 Bearer <token> 但未被授权并给出 401 错误