我有一個簡單service.js的看起來像這樣:
import axios from 'axios'
import { useContext } from 'react'
import APIContext from '../context/api/context'
function GetApi() {
const { API } = useContext(APIContext)
console.log(API)
return API
}
const api = axios.create({
baseURL: `${GetApi()}`,
})
export default api
每當我嘗試使用 API 時,它都會向我拋出一個錯誤:
Invalid Hook Call. Hooks can only be called inside the body of a function component
uj5u.com熱心網友回復:
useContext在您的情況下,您只能在 React 組件或自定義鉤子中呼叫鉤子(請參閱鉤子規則)。
你可以做的就是把你的服務變成一個鉤子:
import axios from 'axios'
import { useContext } from 'react'
import APIContext from '../context/api/context'
function useGetApi() {
const { API } = useContext(APIContext)
console.log(API)
const api = axios.create({
baseURL: API,
})
return api;
}
export default useGetApi;
然后你在一個組件或另一個鉤子中使用它,如下所示:
const api = useGetApi();
uj5u.com熱心網友回復:
你展示的東西是函式而不是函陣列件,鉤子應該存在于其中。如果要在子組件中使用它們,則必須將鉤子放在功能組件的主體中,將狀態作為道具傳遞,將設定器作為回呼傳遞。
uj5u.com熱心網友回復:
包含什么APIContext?Function component意味著你必須回傳 jsx,技術上是一個反應節點。因此,在您的情況下GetApi,它不是反應組件,而是普通功能。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/497196.html
標籤:javascript 反应 反应式 axios
上一篇:當我將我的React本機專案升級到版本0.69.0時,我收到了這種型別的錯誤
下一篇:ExpoReactNativeonPressnavigation.openDrawer()不作業。預先感謝您對我們的支持
