我现在在我的资料页面(pages/my/data/index),然后清除服务器端的session,然后开发者工具编译请求接口,此时接口返回3002(session过期),小程序端判断是3002的话则跳转到登录页面(pages/login/index),登录成功后调用wx.navigateBack(),回到前一页。业务逻辑上没问题,但是回到我的资料页面的时候会调用onShow方法(我的获取资料接口请求是写在onReady里面的),我在onShow方法方法里面并没有写任何接口请求,所以页面是返回了但数据没有加载。如果在onShow里面也写了获取我的资料请求的话,页面进入的时候会调用两次,也就是会跳转两次到登录页面,此处不太合理。
重点来了我前一个页面的路径是pages/my/data/index,结果返回的时候却提示我页面路径不存在
WASubContext.js?t=wechat&s=1644839532374&v=2.21.4:2 pages/my/data/index: onShow have been invoked
WASubContext.js?t=wechat&s=1644839532374&v=2.21.4:2 Unhandled promise rejection {errMsg: "navigateTo:fail page "pages/my/data/" is not found"}
话说你这提示的页面路径也不是我的呀,我的最后是带index的
想问下怎么解决这个问题,感谢大佬
已经自行解决了,在登录页面的 onUnload方法中执行
var pages = getCurrentPages();
var prevPage = pages[pages.length - 2]; //上一个页面
prevPage.onLoad()
即可
本身跳转两次的逻辑 就有些问题,通常 你可以在接口拦截的地方 做登陆跳转 如果返回未登陆的时候 如果页面里面再次调用权限接口 直接拦截 不做跳转即可
代码呢