在vue里使用vuex时,组件获取正常获取store数据

大组件里请求的数据,使用vuex存储下来,另一个组件的子组件无法正常获取此数据,如果再点击另一个链接后再回来则获取数据正常

在tab2组件里created里获取数据

图片描述

图片描述

阅读 24.5k
2 个回答

如果一个组件去computed了一个vuex的变量,正常情况下,这是一种响应式的绑定,即vuex的值改变,子组件接收到的也会改变(此时页面也会自动渲染改动部分,但不能逆向改变数据)。而一些vue检测不到的操作是不会引发上述功能的,比如通过数组下标去修改数组元素,或者修改数组长度。
所以,如果是再父组件获取了数据,而此时没有引发compted更新子组件数据,那么子组件肯定不会渲染。
可以在子组件watch这个值,看看父组件获取了数据,子组件是不是收到了。记得设置deep:true

补充:

computed:{
  a(){
    return this.$store.state.a;
  }
},
watch:{
  a:{
    handler:function(val){
      console.log(val);
    }
  }
}

求解决办法...

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