如何在Vuex存储中存储firebase令牌
我正在尝试将从Firebase返回的accessToken存储到我的Vue项目中的Vuex存储中,当我运行代码时,我收到以下错误: 未捕获的TypeError:无法读取未定义的属性“$store” 看起来它没有在下面的代码中选择store.js,你知道为什么吗 谢谢 Login.vue如何在Vuex存储中存储firebase令牌,firebase,vue.js,nuxt.js,Firebase,Vue.js,Nuxt.js,我正在尝试将从Firebase返回的accessToken存储到我的Vue项目中的Vuex存储中,当我运行代码时,我收到以下错误: 未捕获的TypeError:无法读取未定义的属性“$store” 看起来它没有在下面的代码中选择store.js,你知道为什么吗 谢谢 Login.vue mounted: function() { Firebase.auth.onAuthStateChanged( user => { if (user) { us
mounted: function() {
Firebase.auth.onAuthStateChanged( user => {
if (user) {
user.getIdToken().then(function(idToken) {
this.$store.commit('setStoreToken', idToken)
return idToken
});
}
else {
.
.
.
}
store.js
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
state: {
loggedIn: false,
accessToken: '',
},
mutations: {
loggedIn () {
this.state.loggedIn = true
},
loggedOut () {
this.state.loggedIn = false
},
setStoreToken(state, accessToken) {
state.accessToken = accessToken
},
},
getters: {
getAccessToken: state => {
return state.accessToken
}
},
})
main.js
import store from './store.js'
new Vue({
store,
router,
render: h => h(App),
}).$mount('#app')
我猜:
user.getIdToken().then(function(idToken) {
this.$store.commit('setStoreToken', idToken)
return idToken
});
您不使用箭头函数,这意味着此
绑定到函数本身。您可以使用箭头函数或在其前面创建一个变量,如const self=this
user.getIdToken().then((idToken)=>{
this.$store.commit('setStoreToken', idToken)
return idToken
});
或者你这样做:
const self = this;
user.getIdToken().then(function(idToken) {
self.$store.commit('setStoreToken', idToken)
return idToken
});
我猜:
user.getIdToken().then(function(idToken) {
this.$store.commit('setStoreToken', idToken)
return idToken
});
您不使用箭头函数,这意味着此
绑定到函数本身。您可以使用箭头函数或在其前面创建一个变量,如const self=this
user.getIdToken().then((idToken)=>{
this.$store.commit('setStoreToken', idToken)
return idToken
});
或者你这样做:
const self = this;
user.getIdToken().then(function(idToken) {
self.$store.commit('setStoreToken', idToken)
return idToken
});