Ich habe eine Login-Methode in einer Vue-Komponente, die Firebase verwendet, um einen Benutzer anzumelden. Ich verwende die berechneten Eigenschaften user
, message
und hasErrors
. Wenn diese Methode ausgeführt wird, geht es in die catch
-Funktion, aber dieser Fehler tritt auf: Uncaught TypeError: Cannot set property 'message' of undefined
. Ich habe versucht, den Vuex-Status direkt zu ändern (weil das der berechnete Prop ist), aber das ergibt denselben Fehler. Hier ist die Methode, die ich bin mit:Vue.js - Ich kann nicht auf berechnete Eigenschaften von Methoden zugreifen
login: function (event) {
// ... more stuff
// Sign-in the user with the email and password
firebase.auth().signInWithEmailAndPassword(this.email, this.password)
.then(function (data) {
this.user = firebase.auth().currentUser
}).catch(function (error) {
this.message = error.message
this.hasErrors = true
})
// ...
}
Hier ist, was die berechnete prop wie folgt aussieht:
message: {
get() {
return this.auth.message // mapState(['auth'])
},
set (value) {
this.$store.commit('authMessage', value)
}
}
Ich bin mir ziemlich sicher, dass das Problem zu tun hat, mit ihm in einem Promise
zu sein. Wie kann ich auf berechnete Eigenschaften innerhalb des Firebase Promise
zugreifen?
"Das ist nicht das, was du denkst, dass es innerhalb des Callbacks ist - wahrscheinlich willst du darüber nachlesen, wie" das "funktioniert und wie du es beheben kannst. –