在app.js的onshow里面执行登录判断,如果未登录则跳转到登录页面,当直接点击“编译”按扭时,第一次会正常走登录页面,然后再清除缓存,清除console(有时候不必如此做),再次点击编译按扭则很大几率的情况会出现以下情况,如图一红框中的代码,if(!this.member.openId)结果为true,进入了条件分支,控制台打出了go Login的日志,但是接下来wx.navigateTo()不能跳转,反复点击编译也是一样,相同的情况在真机设备上有偶有出现,不会进行登录而进行到后续业务逻辑时因为没有登录而报错误。正常情况如图二,应该在打出go Login日志之后,跳转到登录页面login/login把登录方法里面设置的openid带过来设置到app的member属性之中。详情复现demo请参见代码片段,在本地开发者工具上已经复现此BUG。
操作手顺为:
1、点击编译(正常第一次会进行登录)
2、清除storage,清除console(此操作选作,不一定需要该步骤也能触发上述BUG)
3、再次点击编译,此时会走行go Login分支,但页面实际不会跳转到login/login.
4、关闭或切换前后台,此等情况下同样会触发app的onshow但可正常跳转到登录页面.
5、真机环境也会有同样的BUG,第一次加载就直接不跳转登录页,但不是每次都会出现BUG。