vue微信登录成功之后,数据没渲染到页面上,一定要刷新下

微信授权登录之后,我已经在本地缓存了用户的数据,但是登录跳转到业务页面之后,显示数据是没有的,但是localstroge里面是有数据的,console.log显示underfind,但是刷新一下,数据就能出来

本地数据库(localstroge)里里面有值

但是页面上打印出来是underfind

代码:
这一步在在登录之后返回主页的时候,后台直接把用户的openId 传给url ,然后,我直接把用户信息保存到本地,
想让数据直接渲染,应该和执行顺序有关系,因为我先执行了数据的渲染,但是那个时候那里还没数据,所以显示underfind,要刷新了才有数据
clipboard.png

这下面就是那个underfind ,要刷新了才有数据

clipboard.png

但是如果页面刷新了,页面上就可以显示出数据

怎么解决?

阅读 5.7k
7 个回答

我也遇到过类似的问题,是调用错了生命周期的原因。在你完成登录操作之前,你的首页组件就已经被挂载了,相当于已经执行到了mounted钩子了。你试试update,应该可以解决问题。

第二次有数据是因为不需要登录就可以从第一次登录那里面拿数据,你可以通过promise将缓存数据和读取数据改成同步的

感觉应该是vue生命周期的问题。所以我想知道你获取用户信息的过程放到了哪里?lifecycle.png

你把这个方法写在mounted的钩子下试试

我一般是将这些操作放在mounted钩子中

不知道楼主有没有好的方案,前几天也遇见这个问题,我是加了一个空白页,从localstorage里面取值是需要时间的,延时0.5秒就可以取到,方法很笨,希望有好的处理方法

解决方案:就是不要放在localstorge里面,就直接通过组建之间的传值

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