错误:无法在回调中调用 React Hook “useLogout”。阿波罗
Posted
技术标签:
【中文标题】错误:无法在回调中调用 React Hook “useLogout”。阿波罗【英文标题】:Error: React Hook "useLogout" cannot be called inside a callback. Apollo 【发布时间】:2020-07-07 06:50:46 【问题描述】:我不确定这个错误是什么以及如何解决它?
代码:
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】:React aslo 识别函数名以 'use' 开头作为自定义钩子,所以我需要更改 useLogout => doLogout
【讨论】:
以上是关于错误:无法在回调中调用 React Hook “useLogout”。阿波罗的主要内容,如果未能解决你的问题,请参考以下文章
不能在回调中调用 React Hook “useState”
React+Typescript:修复 UseEffect Hook(回调+清理函数错误)
在 react-hook-form 的 useFieldArray 上异步调用 reset 时,reset 无法正常工作
在 Next.js 中导入 react-hook-mousetrap 时出现“无法在模块外使用 import 语句”错误