初学微信小程序,搞了半天完全不知道根页面是怎么加载进去的!
我们的app是先进入一个登录页面login,登录成功后进入tabbar,显示tabbar第一个item:mineProject。
app.js文件中,只有一个onLaunch方法,里面完全没有设置根页面的方法,但却可以显示出login页面!
再看app.json,
{
"pages": [
"pages/login/login",
"pages/mineProject/mineProject",
"pages/personCenter/personCenter"
],
"tabBar": {
"selectedColor": "#f9614a",
"list": [
{
"pagePath": "pages/mineProject/mineProject",
"text": "我的项目",
"iconPath": "img/icon_aite_gray.png",
"selectedIconPath": "img/icon_aite_orange.png"
},
{
"pagePath": "pages/personCenter/personCenter",
"text": "个人中心",
"iconPath": "img/icon_personal_gray.png",
"selectedIconPath": "img/icon_personal_orange.png"
}
]
}
}
看完一脸懵逼啊,这里面通过"pages"属性定义了3个页面,登录(login)、我的项目(mineProject)、个人中心(personCenter);还有就是tabBar属性,包含了我的项目、个人中心。但是还是TM的没有设置根(login)页面啊!!!
原来,"pages"属性第一个页面就是根页面!!!WTF!!我也没看到哪个文档有相关说明!如果切换mineProject到第一个位置,则app加载后,第一个显示的页面是mineProject,且其包含在tabBar之内!而不是单独一个mineProject页面!
我记得xml项目都需要配置一个index起始页的,这种做法我真猜不到,太坑人了!好歹你在官网给个说明啊!曰!
解决了 根页面的问题,就是从login切换到tabBar的问题,又是一个坑逼!
代码是这样写的:
afterLoginSuccess: function (res) {
...
wx.switchTab({
url: '../personCenter/personCenter',
})
}
这样就完成了切换。。。按照iOS的逻辑我实在是猜不到啊,你这里仅仅是切换了tabBar的index啊,怎么就把login给移除了呢?哎,这些??逻辑没详细说明真是坑。。。(虽然你实现了)
网友评论