Reactjs 错误:无法在回调内调用React挂钩“useLogout”。阿波罗

Reactjs 错误:无法在回调内调用React挂钩“useLogout”。阿波罗,reactjs,apollo,apollo-client,Reactjs,Apollo,Apollo Client,我不确定这个错误是关于什么以及如何修复它 代码: 错误: 16:5无法在内部调用error React Hook useLogout 回拨。React钩子必须在React函数组件或 自定义React钩子函数React钩子/钩子规则 React aslo将函数名以“use”开头作为自定义挂钩,因此我需要更改useLogout=>doLogoutReact aslo将函数名以“use”开头作为自定义挂钩,因此我需要更改useLogout=>doLogout import React, { useCo

我不确定这个错误是关于什么以及如何修复它

代码:

错误:

16:5无法在内部调用error React Hook useLogout 回拨。React钩子必须在React函数组件或 自定义React钩子函数React钩子/钩子规则


React aslo将函数名以“use”开头作为自定义挂钩,因此我需要更改useLogout=>doLogout

React aslo将函数名以“use”开头作为自定义挂钩,因此我需要更改useLogout=>doLogout

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