变异不是函数?

问题描述

我想通过使用 graphql 来使用社交登录。 我想通过使用 kakalogin 函数从社交登录获取 accesstoken,然后使用 kakakoLoginMutation 函数使用它来制作令牌。

我尝试将常量名称设为 access_token(=="123") 如果我成功通过 kakao 登录,我会通过 authObj 获得 accss_token。然后我使用 setAccess_token(useState) 将其设置为 const access_token。

console.log(authObj.access_token) 显示正确的字符串。 但是在 setAccess_token(authObj.access_token) 之后,console.log(access_token) 显示“123”。

我认为 console.log(access_token) 必须不显示“123”其他字符串。 另一个错误是 KakaoLoginMutation 不是函数

import { useState } from "react";
import { useMutation } from "react-apollo-hooks";
import { KAKAO_LOGIN,LOCAL_LOG_IN } from "./AuthQuery";


export default () => {
  const [access_token,setAccess_token] = useState("123");
  const localLogInMutation = useMutation(LOCAL_LOG_IN);
  const kakaoLoginMutation = useMutation(KAKAO_LOGIN,{
    variables: { provider: "kakao",accesstoken: access_token },});

  const kakaoLogin = async (e) => {
    e.preventDefault();
    window.Kakao.Auth.login({
      success: function (authObj) {
        setAccess_token(authObj.access_token);
        console.log(authObj.access_token);
        console.log(access_token);
      },});

    const {
      data: { socialAuth: token },} = await kakaoLoginMutation();
    console.log(token);
    if (token !== "" && token !== undefined) {
      localLogInMutation({ variables: { token } });
    }
  };

  return (
    <a href="#" onClick={kakaoLogin}>
      <h1>카카오로그인</h1>
    </a>
  );
};

Query.js

import { gql } from "apollo-boost";

export const KAKAO_LOGIN = gql`
  mutation SocialAuth($provider: String!,$accesstoken: String!) {
    socialAuth(provider: $provider,accesstoken: $accesstoken) {
      token
    }
  }
`;

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)