【问题标题】:Apollo Client useLazyQuery not startingApollo 客户端 useLazyQuery 未启动
【发布时间】:2020-02-27 05:43:43
【问题描述】:

在下面的代码中,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"}}}

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

我错过了什么吗?

【问题讨论】:

  • 我也面临同样的问题。你找到解决办法了吗?

标签: reactjs react-apollo


【解决方案1】:

尝试使用

checkMe({ variables: {} });

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

【讨论】:

    猜你喜欢
    • 2021-12-16
    • 1970-01-01
    • 2020-05-03
    • 1970-01-01
    • 2018-08-21
    • 1970-01-01
    • 1970-01-01
    • 2021-07-11
    • 2017-04-04
    相关资源
    最近更新 更多