使用VUEX的action从远程获取数据,store/modules/index.js

async getStatistics({ commit }, val) {
    const { code, msg, data } = await getStatistics({
      start: val.start,
    })

组件上用dispatch调用,views/index/index.vue:

this.$store
        .dispatch('index/getStatistics', {
          start: this. start,
        })
        .then(() => {
          this.start++
        })

并在computed里用…mapGetters获取数据:

...mapGetters({
        statistics: 'index/statistics',
      }),

开始怎么也获取不到,vuex数据不是响应式的吗,为什么不行呢?
后来试了试,如果{{ a }} 这样使用是可以的,在js里使用就得等到dispatch获取到数据以后才行,所以,如果要在js里使用数据,就要把用到数据的代码放到了dispatch的then里面才可以。

欢迎交流指点!我的微信:

Logo

前往低代码交流专区

更多推荐