Vuex: невозможно прочитать свойство '$store' из неопределенного
Я настроил хранилище в vue.js и могу получить доступ к параметрам состояния в вычисляемой части компонента:
computed: {
BASE_URL () {
return this.$store.state.BASE_URL;
}
Тем не менее, когда я пытаюсь получить доступ к магазину методами того же компонента:
methods: {
register: function () {
axios.post( this.BASE_URL + "/web/register", {
username: this.username,
password: this.password,
email: this.email
}).then(function(data){
this.$store.commit('saveToken', data.token);
console.log('token is set to:', this.$store.state.token)
});
}
},
Я получаю эту ошибку в консоли:
Uncaught (в обещании) TypeError: Невозможно прочитать свойство '$store' из неопределенного
Я также пытался $store
без this
но получите ту же ошибку.
Что здесь не так? Как я могу это исправить?
1 ответ
Решение
Вы используете функцию JavaScript вместо функции стрелки. Попробуйте это, и это должно работать.
methods: {
register () {
axios.post( this.BASE_URL + "/web/register", {
username: this.username,
password: this.password,
email: this.email
}).then( (data) => {
this.$store.commit('saveToken', data.token);
console.log('token is set to:', this.$store.state.token)
});
}