Reactjs 错误:无效的钩子调用。在wait之后调用hook时-如何等待一个钩子中的数据实例化到另一个钩子中?

Reactjs 错误:无效的钩子调用。在wait之后调用hook时-如何等待一个钩子中的数据实例化到另一个钩子中?,reactjs,swr,Reactjs,Swr,在使用swr获取数据之前,我正在尝试向我的获取程序中注入一个头。我需要等待一个定制钩子对数据做出响应,然后才能将其注入定制抓取程序 如果我使用promise.com,那么我知道我正在获取相关数据,如果我使用字符串手动注入它,它就会工作,我会看到标题。它只是异步进行的 我该怎么做呢 代码: 首先,保持承诺的一致性,使用async/await或choose将其与链接,然后使用,但不能同时使用两者。如果等待acquireToken(),则可以将其值存储在变量中。此外,如果选择async/await,请

在使用swr获取数据之前,我正在尝试向我的获取程序中注入一个头。我需要等待一个定制钩子对数据做出响应,然后才能将其注入定制抓取程序

如果我使用promise.com,那么我知道我正在获取相关数据,如果我使用字符串手动注入它,它就会工作,我会看到标题。它只是异步进行的

我该怎么做呢

代码:


首先,保持承诺的一致性,使用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
      }
   }