为了账号安全,请及时绑定邮箱和手机立即绑定

vuex中,我在index.vue组件设置的值,为什么在另外一个组件crumb.vue获取不到

vuex中,我在index.vue组件设置的值,为什么在另外一个组件crumb.vue获取不到

慕后森 2019-05-08 12:44:49
题目描述我在index.vue文件中通过this.$store.dispatch设置了state的值,然后我在另外一个组件crumb中通过this.$store.state获取不到设置的值题目来源及自己的思路相关代码index.vueasyncmounted(){letself=thisconsole.log(self.$store.state.geo.position);//数据为空//设置当前城市和省份self.$store.dispatch("geo/setPosition",{city:window.localStorage.getItem("currentCity"),province:window.localStorage.getItem("currentPro")});console.log(self.$store.state.geo.position);//有数据crumb.vuecomputed:{city(){returnthis.$store.state.geo.position.city;}},crumb.vue的html结构中使用{{city}}//为空geo.jsconststate=()=>({position:{}});constmutations={setPosition(state,val){state.position=val;}};constactions={setPosition:({commit},position)=>{commit("setPosition",position);}};exportdefault{namespaced:true,state,mutations,actions};index.jsimportVuefrom"vue";importvuexfrom"vuex";importgeofrom"./modules/geo";Vue.use(vuex);conststore=()=>newvuex.Store({modules:{geo,},});exportdefaultstore求大神指点指点!
查看完整描述

2 回答

?
慕斯709654

TA贡献1840条经验 获得超5个赞

在你的mutation中是直接进行对象赋值的,这种情况vue会获取不到改动导致双向绑定失效,试试在mutation里用vue提供的set方法来更新state里的数据。
                            
查看完整回答
反对 回复 2019-05-08
  • 2 回答
  • 0 关注
  • 924 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信