1.应用场景
最近在做一个小程序开发,用户登录功能登录后使用了wx.redirectTo()
跳转回用户主页属于tabar的,使用调试器的时候跳转正常,用真机调试的发生了redirectTo:fail can not redirectTo a tabbar page
的报错。查询后发现属于tabbar的页面,只能通过wx.switchTab来跳转。
wx.redirectTo({
url: '/pages/usercenter/index/index',
})
2.问题解决
wx.switchTab({
url: '/pages/usercenter/index/index',
success: function (e) {
var page = getCurrentPages().pop();
if (page == undefined || page == null){
return;
}
page.onLoad();
}
})
- 备注:直接使用
wx.switchTab
跳转到已经创建的页面不会导致页面刷新,对于发生了用户信息修改的如修改个人信息后的跳转回原页面需要重新加载用户信息,可以在跳转参数里加入跳转成功后对页面的数据进行刷新。
3.几种跳转方式比较
- wx.redirectTo:关闭当前所在页面,再跳转到指定的非TabBar页面。不受页面层数限制。
- wx.navigateTo:不关闭当前所在页面,跳转到指定的非TabBar页面,注意页面路径限制是五层。左上角会显示一个返回按钮,可以直接返回到上一层页面。
- wx.switchTab:只可以跳到属于tabBar的页面。
评论 (0)