vuex mounted中取不到mapState的值

`<template>
  <div class="home">
    vuex action
    <div>点击获取数据</div>
    <ul>
      <li v-for="(item, index) of voteData" :key="index">
        {{ item.title }}
      </li>
    </ul>
  </div>
</template>

<script>
import { mapState } from 'vuex'
const mapStateObj = mapState(['voteData'])
export default {
  name: 'Home',
  data () {
    return {
      a: []
    }
  },
  create () {
  },
  computed: {
    ...mapStateObj
  },
  mounted () {
    this.$store.dispatch('getVoteData')
    console.log(this.voteData)
    this.a = this.voteData
    console.log(this.a)
  },
  methods: {

  }
}
</script>
`
阅读 7.3k
2 个回答

给你举个例子

actions: {
    getVoteData: ({ commit }, payload) => {
      return new Promise(resolve => {
        api.get(...).then(res => {
            commit("...", res);
            resolve(res)
        })
      });
    }
  }

mounted 里面

mounted(){
    this.$store.dispatch('getVoteData').then(res => {
        这里就可以获取你想要的了
    })
}

学废了吗

新手上路,请多包涵

加了settimeout 好像能取到 但是时间不好控制··有其他办法吗

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏