Polymer.Gestures.addListener(googleLoginBtn, 'tap', e => loginWithGoogle(e));
Polymer.Gestures.addListener(logOutBtn, 'tap', e => logOut(e));
此处googleLoginBtn和logOutBtn是允许您登录和注销的相应按钮的ID。我已经导入了使用手势事件监听器所需的所有必要代码。
我收到此错误,说我的addListener为null。我应该改变什么才能使它发挥作用。
答案 0 :(得分:0)
检查您提供的代码here:
解决方案(简单):
<paper-button raised on-tap="loginWithGoogle" id="googleLoginBtn">Login
with Google</paper-button>
由于您使用带注释的事件侦听器来触发手势事件“tap”,您可以在类中定义函数/侦听器loginWithGoogle
。当您使用带注释的事件侦听器时,Polymer会自动为手势事件执行额外的簿记。
示例:
loginWithGoogle(){
//.. Do login on tap
}
另一种解决方案是在扩展Polymer.Element的类中的构造函数或ready方法上定义手势事件。
class NotesApp extends Polymer.Element {
static get is() { return 'notes-app'; }
static get properties() {
return {
prop1: {
type: String,
value: 'notes-app'
},
currentUser: {
type: String
}
};
}
loginWithGoogle(e) {
var provider = new firebase.auth.GoogleAuthProvider();
auth.signInWithPopup(provider).then(function(result) {
var token = result.credential.accessToken;
console.log(token);
var user = result.user;
console.log(user);
currentUser = user.displayName;
}).catch(function (error) {
console.log(error.message);
});
}
logOut (e) {
firebase.auth().signOut().then(function() {
alert("Signed Out!");
}).catch(function(error) {
console.log(error.message);
});
}
////Like this////
ready(){
super.ready();
Polymer.Gestures.addListener(this.$.googleLoginBtn, 'tap', e =>
loginWithGoogle(e));
Polymer.Gestures.addListener(this.$.logOutBtn, 'tap', e => logOut(e));
}
}
在某些情况下,您可能需要扩展类,如:
class NotesApp extends Polymer.GestureEventListeners(Polymer.Element){...}