Ошибка: React Hook "useLogout" не может быть вызван внутри обратного вызова. Аполлон - PullRequest
0 голосов
/ 26 марта 2020

Я не уверен, что это за ошибка и как ее исправить?

Код:

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 Hooks должны вызываться в компоненте функции React или в пользовательской функции React Hook реагировать на крючки / правила правил

1 Ответ

2 голосов
/ 26 марта 2020

Реакция также распознает имя функции, начинающееся с 'use' как пользовательский хук, поэтому мне нужно изменить useLogout => doLogout

...