网速慢时vue初始化的钩子获取不到vuex的数据

发现了一个奇怪的bug,可能我没了解过vue源码,所以暂时不知道是哪里出了问题:
在三个钩子:activatedcreatedmounted里面如果网速调慢:

image.png

获取vuex的数据,会有一定概率拿到的是空的

如下图所示,我打印了vuex的state里面具体的整个对象,和具体的值,发现userLogin这个值一个能拿到,一个是空,这是为啥?
不止是created钩子,放在mounted里面也是一样。
image.png

放一个网络正常的时候打印的值:
image.png

我试了一下用mapState,也是一样拿不到
image.png

阅读 3.4k
2 个回答

所以说接收vuex数据都放在cumputed里面

你这是异步获取的数据吧.请求返回之前拿不到不是很正常吗.

而直接打印和打印对象,然后再展开结果不同.请复习js基础.

打印对象输出的是引用.打印时它的那个属性就是个空字符串,等到你展开时,该属性已经被赋值了.
如果希望看到打印那个瞬间对象里的值,请用JSON.stringify转成字符串.

PS.另一方面,被取值函数处理过的属性值,不去取值,其值是未知的.所以下面那些值都是(...),不过这个与本案例无关.
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题