发布
社区首页 >问答首页 >我能在Vuex商店用这个吗?

我能在Vuex商店用这个吗?
EN

Stack Overflow用户
提问于 2020-06-23 10:13:08
回答 1查看 438关注 0票数 1

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

我在store.js中的行为:

代码语言:javascript
代码运行次数:0
复制
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', {

        })
    }
}

如何调用我的操作(这是方法调用单击):

代码语言:javascript
代码运行次数:0
复制
test() {
        return this.$store.dispatch('checkCookies')
      }

如何调用我的测试函数:

代码语言:javascript
代码运行次数:0
复制
<v-btn @click="test">cookies!</v-btn>

运行checkCookies时出现了以下错误:

v-on处理程序中的

错误:"TypeError:_this未定义“

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-25 11:29:41

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

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

代码语言:javascript
代码运行次数:0
复制
this.$http    -> Vue.http
this.$cookies -> Vue.$cookies

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

代码语言:javascript
代码运行次数:0
复制
const store = new Vuex.Store({ ... })

// Make sure you have registered the Vue plugins by this point
store.$http = Vue.http
store.$cookies = Vue.$cookies
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62532364

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档