社交登录-如何在反应中使用函数外的变量? [英] social login - how to use variables outside of function in react?
本文介绍了社交登录-如何在反应中使用函数外的变量?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我尝试使用社交登录.
如果我成功登录kakao.他们给了我access_token,我用它来突变到我的服务器上
if I success to login in kakao. they give me access_token and I use it to mutation to my server
下面是我的代码
import { useMutation } from "react-apollo-hooks";
import { KAKAO_LOGIN } from "./AuthQuery";
export default () => {
const kakaoLoginMutation = useMutation(KAKAO_LOGIN, {
variables: { provder: "kakao", accessToken: authObj.access_token },
});
const kakaoLogin = (e) => {
e.preventDefault();
window.Kakao.Auth.login({
success: function (authObj) {
console.log(authObj.access_token);
},
});
};
if (authObj.access_token !== "") {
kakaoLoginMutation();
}
return (
<a href="#" onClick={kakaoLogin}>
<h1>카카오로그인</h1>
</a>
);
};
如果我成功通过功能kakaoLogin使用登录,它将给出authObj.console.log(authObj.access_token)向我展示access_token
if I success to login using by function kakaoLogin, it give authObj. console.log(authObj.access_token) show me access_token
,我想用它来使用Mutation.但它向我显示authObj尚未定义.
and I want to use it to useMutation. but it show to me authObj is not defined.
推荐答案
看起来您正在寻找一个本地国家来保存 authObj
Looks like you're looking for a local state to hold authObj
const [authObj, setAuthObj] = useState({});
const kakaoLogin = (e) => {
e.preventDefault();
window.Kakao.Auth.login({
success: function(authObj) {
setAuthObj(authObj);
},
});
};
const kakaoLoginMutation = useMutation(KAKAO_LOGIN, {
variables: {
provder: "kakao",
accessToken: authObj.access_token
},
});
if (authObj.access_token !== "") {
kakaoLoginMutation();
}
这篇关于社交登录-如何在反应中使用函数外的变量?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文