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)
        });
    }  
Другие вопросы по тегам