错误:无法在回调内部调用React Hook“ useLogout”。阿波罗

时间:2020-03-26 15:26:46

标签: reactjs apollo apollo-client

我不确定此错误是什么以及如何解决?

代码:

import React, { useContext, useEffect } from 'react'
import { Layout, Loading, LangContext } from '@frontend'
import { gql, useMutation } from '@apollo/client'

const LogoutMutation = gql`
  mutation LogoutMutation {
    logout
  }
`

const Logout = (): JSX.Element => {
  const [useLogout] = useMutation<{ logout: boolean }>(LogoutMutation)

  useEffect(() => {
    useLogout().then(({ data }) => {
      if (data?.logout === true) window.location.href = '/'
    })
  }, [useLogout])

  return null
}

export default Logout

错误:

16:5错误无法在一个内部调用React Hook“ useLogout” 打回来。必须在React函数组件中调用React Hooks或 定制的React Hook函数react-hooks / rules-of-hooks

1 个答案:

答案 0 :(得分:4)

反应aslo识别函数名称以'use'作为自定义钩子,因此我需要更改useLogout => doLogout