问题1:页面跳转,有时会出现loading加载框没有隐藏。
解决:改造Loading组件,在最外层div再加一层<div v-if="isShow">。代码如下:
<template>
<div v-if="isShow">
<div class="loading-box" v-if="isShow" append="tree">
<div class="loading-bg">
<image class="loading-img" src="images/loading.gif" ref="img"></image>
<div class="loading-tips-box">
<text class="loading-text">{{message}}</text>
</div>
</div>
</div>
</div>
</template>
问题2:在Android端,切换账号再次登录,进入首页会出现白板(空白页)。
解决:原因在于home页跳转了两次,导致了这个问题。
解决的方法:
一开始遇到这个莫名其妙的问题的时候,一点头绪都没有。
正常情况下,切换账号再次登录跟首次登录是一模一样的流程,为什么结果有这么大的区别呢?所以我先试着去整理了一下登录流程:在登录页输入账号密码,调用登录接口,登录成功后,跳转到首页,并通知全局监听器:更改登录状态updateLoginState。
问题就出在这个监听器中。因为登录成功的回调中执行了跳转首页的操作,在监听器updateLoginState中再次执行了跳转首页的操作,重复跳转首页导致了这个问题。既然一次跳转是正常的,那么把跳转到首页控制成1次就好了。所以对于跳转首页的处理进行了判断:如果首页已经加载了,也就是路由中已经有首页路径,就不再进行跳转首页的操作了,这样子处理下问题就解决了。
主要在3个地方处理:(1)App.vue:在“updateLoginState"监听事件中添加判断 this.$route.path.indexOf('/home')==-1;(2)在登录页的登录按钮事件的登录成功回调中添加该判断;(3)在注册成功对话框中的自动登录回调方法中添加判断。