1个回答

test
2024-07-20
如果是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了
}
回复

适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容