我正在尝试为我的网站实现Google登录。登录按钮正确显示并成功登录。但是,当我在使用网站后退出并尝试移动到登录页面时(我正在使用React,因此它都在一个页面中),问题就出现了。我使用完全相同的函数来呈现登录页面,但它给出了“cb = gapi.loaded_0:249未捕获的类型错误:无法读取null的'style'属性”。gapi中的错误发生在这里(至少我认为是这样):
这是我最初添加登录按钮的方式:
a.El;window.document.getElementById((c?"not_signed_in":"connected"
这是我最初添加登录按钮的方式:
elements.push(h('div.g-signin2',{'data-onsuccess': 'onSignIn'}))
return h('div.page_content',elements)
我稍后会使用ReactDOM.render调用进行渲染。
这里是我处理SignOut和SignIn的方式:
function signOut() {
var auth2 = gapi.auth2.getAuthInstance();
auth2.signOut().then(function () {
// console.log('User signed out.');
signedin = false;
auth2 = null;
renderPage()
});
}
var google_idtoken;
var signedin = false;
// set auth2 to null to indicate that google api hasn't been loaded yet
var auth2 = null;
function onSignIn(googleUser) {
auth2 = gapi.auth2.getAuthInstance({
client_id: 'ClientID.apps.googleusercontent.com'
});
google_idtoken = googleUser.getAuthResponse().id_token;
wrongemail = true;
// if(auth2 != null && auth2.isSignedIn.get() == true){
if ((((auth2.currentUser.get()).getBasicProfile()).getEmail()).split("@").pop() == 'domain.com'){
signedin = true
wrongemail = false
}
updateSources()
// renderPage()
}
element.style
,其中某个element
的值为null
。无论如何,在控制台中必须指示脚本文件名和行号以及错误发生的位置。 - user2570380