首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在asyncData中做mapGetters?Nuxt

如何在asyncData中做mapGetters?Nuxt
EN

Stack Overflow用户
提问于 2019-10-21 20:08:09
回答 2查看 3.3K关注 0票数 0

我的目标是在asyncData内部传递一个getter对象,因为我需要访问状态来将数据传递给axios

代码示例

代码语言:javascript
复制
export default {
   async asyncData() {
      let result = await $axios.$post('/api/test', { data: this.totalPrice })
   },
   computed: {
      ...mapGetters(["totalPrice"])
   }
}

正如您所看到的,我想访问asyncData中的getter对象,但是我得到了

EN

回答 2

Stack Overflow用户

发布于 2019-10-21 21:12:30

正如documentation中指出的.

Warning:You ‘t具有通过this inside asyncData访问组件实例的权限,因为它在初始化组件之前被称为

相反,请使用提供的context对象

代码语言:javascript
复制
async asyncData ({ store }) {
  const body = { data: store.getters.totalPrice }
  const { data } = await $axios.$post('/api/test', body)
  return data
}
票数 3
EN

Stack Overflow用户

发布于 2019-10-21 20:59:24

方法应该放在方法中,以具有vue上下文:

代码语言:javascript
复制
export default {
   methods : {
      async asyncData() {
         let result = await $axios.$post('/api/test', { data: this.totalPrice })
      }
   },
   computed: {
      ...mapGetters(["totalPrice"])
   }
}

如果要在加载时执行此操作,请使用mounted (https://vuejs.org/v2/guide/instance.html#Lifecycle-Diagram)

代码语言:javascript
复制
export default {
   async mounted() {
      let result = await $axios.$post('/api/test', { data: this.totalPrice })
   },
   computed: {
      ...mapGetters(["totalPrice"])
   }
}
票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58486000

复制
相关文章

相似问题

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