1 个回答

如果是vue2.x

// 直接获取
this.$store.state.模块名.feedBackDetails
// 通过 getters
getters: {
    getFeedBackDetails: state => state.feedBackDetails
}
// 通过映射函数mapState 或 mapGetter
computed() {
  ...mapState({
    feedBackDetails: state => state.模块名.feedBackDetails
  })
    // 或者
  ...mapGetter([
    feedBackDetails: 'getFeedBackDetails'
  ])
}
// 直接this.feedBackDetails 调用

mounted() {
    console.log(this.$store.state.模块名.feedBackDetails)
    console.log(this.feedBackDetails)
}

如果是vue3.x

import { onMounted } from 'vue'
import { useStore } from 'vuex'
const store = useStore()

onMounted(() => {
    console.log(store.feedBackDetails)
})

// 补充:获取不到的话需要修改一下action, 返回一个promise。

// store
actions: {
    async updateDetails(context, payload) {
        return new Promise((resolve, reject) => {
            // 请求获取数据,更新feedBackDetails逻辑
            ...
            resolve()
        })
    }
}

// 在vue组件中调用
async mounted() {
    await this.$store.dispatch('updateDetails')
    console.log(this.$store.state.模块名.feedBackDetails) //这样就不会undefined了
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题