我可以在 Vuex 商店中使用它吗?

Can I use this in Vuex store?

我使用 vue-cookiesvue-resource 创建项目,我尝试使用 this.$cookies.get('my-cookie') 访问 cookie并用 this.$http.post('URL') 请求我的 API。 Tut 商店无法访问 this.

我在 store.js 中的操作:

checkCookies: () => {
    if (this.$cookies.get('test') === null) {
        console.log('vide')
        //envoyer sur la page de connexion
    } else {
        console.log('pas vide')
        this.$http.post('URL', {

        })
    }
}

我如何调用我的操作(点击时调用方法):

test() {
        return this.$store.dispatch('checkCookies')
      }

如何调用我的测试函数:

<v-btn @click="test">cookies!</v-btn>

当我 运行 checkCookies :

时出现此错误

Error in v-on handler: "TypeError: _this is undefined"

我通常会在我的商店中使用 this,我知道我可以一个一个地导入每个包来使用它们但是,我想知道是否有办法在中使用 this vuex 到 ?

this.$cookiesthis.$http 在组件方法中工作,因为这些函数由各自的插件添加到 Vue.prototype

无论如何,这些只是方便的方法;这些插件似乎直接在 Vue 上安装了等效的方法:

this.$http    -> Vue.http
this.$cookies -> Vue.$cookies

如果您真的希望能够在 Vuex 操作中执行 this.$http,那么您需要将方法分配给存储:

const store = new Vuex.Store({ ... })

// Make sure you have registered the Vue plugins by this point
store.$http = Vue.http
store.$cookies = Vue.$cookies