Reactjs 错误:无效的钩子调用。在wait之后调用hook时-如何等待一个钩子中的数据实例化到另一个钩子中?
在使用swr获取数据之前,我正在尝试向我的获取程序中注入一个头。我需要等待一个定制钩子对数据做出响应,然后才能将其注入定制抓取程序 如果我使用promise.com,那么我知道我正在获取相关数据,如果我使用字符串手动注入它,它就会工作,我会看到标题。它只是异步进行的 我该怎么做呢 代码:Reactjs 错误:无效的钩子调用。在wait之后调用hook时-如何等待一个钩子中的数据实例化到另一个钩子中?,reactjs,swr,Reactjs,Swr,在使用swr获取数据之前,我正在尝试向我的获取程序中注入一个头。我需要等待一个定制钩子对数据做出响应,然后才能将其注入定制抓取程序 如果我使用promise.com,那么我知道我正在获取相关数据,如果我使用字符串手动注入它,它就会工作,我会看到标题。它只是异步进行的 我该怎么做呢 代码: 首先,保持承诺的一致性,使用async/await或choose将其与链接,然后使用,但不能同时使用两者。如果等待acquireToken(),则可以将其值存储在变量中。此外,如果选择async/await,请
首先,保持承诺的一致性,使用async/await或choose将其与
链接,然后使用,但不能同时使用两者。如果等待acquireToken()
,则可以将其值存储在变量中。此外,如果选择async/await,请使用try/catch块包装代码,以便正确处理错误:
export const useApi = async (gql: string) => {
const { acquireToken } = useAuth()
try {
const res = await acquireToken()
graphQLClient.setHeader('authorization', `Bearer ${res.accessToken}`)
const { data, error } = useSWR(gql, (query) => graphQLClient.request(query))
const loading = !data
return { data, error, loading }
catch(error) {
// handle error
}
}
export const useApi = async (gql: string) => {
const { acquireToken } = useAuth()
try {
const res = await acquireToken()
graphQLClient.setHeader('authorization', `Bearer ${res.accessToken}`)
const { data, error } = useSWR(gql, (query) => graphQLClient.request(query))
const loading = !data
return { data, error, loading }
catch(error) {
// handle error
}
}