微信小程序是个很不错的东西,但是在开发微信小程序的时候,总是会遇到一些特殊的问题,其中navigator导航算是一个对刚接触小程序开发的程序员来说应该算是个比较深的坑了吧。
虽然有微信提供的文档接口和开发者工具,完成起来总是感觉那么畅快,但是在手机上预览后,总是会有这样那样的问题:(附上官方文档)
navigator的open-type属性 可选值 'navigate'、'redirect'、'switchTab',对应于wx.navigateTo、wx.redirectTo、wx.switchTab的功能
open-type="navigate"等价于API的 wx.navigateTo 而wx.navigateTo的url是需要跳转的应用内非 tabBar 的页面的路径
open-type="redirect"等价于API的 wx.redirectTo 而wx.redirectTo的url是需要跳转的应用内非 tabBar 的页面的路径
open-type="switchTab"等价于API的 wx.switchTab而wx.switchTab的url是需要跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面
最后一个switchTab事件触发以后 把前面的页面都关闭了
//跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面 // url 需要跳转的 tabBar 页面的路径(需在 app.json 的 tabBar 字段定义的页面),路径后不能带参数 wx.switchTab({url:'index/index'})//关闭所有页面,打开到应用内的某个页面。 // url 需要跳转的应用内页面路径 , 路径后可以带参数。参数与路径之间使用?分隔,参页面 数键与参数值用=相连,不同参数用&分隔;如 'path?key=value&key2=value2',如果跳转的页面路径是 tabBar 页面则不能带参数 wx.reLaunch({url:'test?id=1'}) //关闭当前页面,返回上一页面或多级页面。可通过 getCurrentPages()) 获取当前的页面栈,决定需要返回几层。 wx.navigateBack({delte:1})//返回上一个页面 //保留当前页面,跳转到应用内的某个页面,使用wx.navigateBack可以返回到原页面 wx.navigateTo({url:'test?id=2'}) // 关闭当前页面,跳转到应用内的某个页 面。 wx.redirectTo(OBJECT) 注: navigateTo, redirectTo 只能打开非 tabBar 页面。 switchTab 只能打开 tabBar 页面。 reLaunch 可以打开任意页面。 页面底部的 tabBar 由页面决定,即只要是定义为 tabBar 的页面,底部都有 tabBar。 调用页面路由带的参数可以在目标页面的onLoad中获取。