web-dev-qa-db-ja.com

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)
        });
    }  
 },

コンソールでこのエラーが発生します:

不明(約束どおり)TypeError:未定義のプロパティ '$ store'を読み取れません

私も試しました$storethisなしで同じエラーが発生します。

ここで何が問題になっていますか?どうすれば修正できますか?

6
Karlom

アロー関数の代わりに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)
        });
    }  
23
Jerico Pulvera