Apollo客户端useLazyQuery无法启动

时间:2019-10-31 20:11:42

标签: reactjs react-apollo

在以下代码中,永远不会触发checkme()

import { useMutation, useLazyQuery } from '@apollo/react-hooks';
import { LOGOUT_USER_QUERY, CURRENT_USER } from '../graphql/user';
import Cookies from 'js-cookie';

export default function Logout(props) {
  const [logoutUser, { loading, error }] = useMutation(LOGOUT_USER_QUERY);
  const [checkMe, { loading: meLoading, error: meError }] = useLazyQuery(CURRENT_USER);

  const onLogout = async () => {
    await logoutUser();
    Cookies.remove('token');
    checkMe();

  }
  return (
    <div className="btn" onClick={onLogout}>{props.children}</div>
  )
}

logoutUser()成功运行并返回

{"data":{"logout":{"status":"TOKEN_REVOKED","message":"Your have been logged out","__typename":"LogoutResponse"}}}

没有错误,查询永远不会发送。

我想念东西吗?

1 个答案:

答案 0 :(得分:0)

尝试使用

checkMe({ variables: {} });

useLazyQuery返回的方法需要一个variables对象,即使您没有向其传递任何变量。