今天学习了小程序实现路由跳转,我在操作的时候在控制台出现以下错误信息。

微信小程序:报错(in promise) MiniProgramError {“errMsg“:“navigateTo:fail can not navigateTo a tabbar page“}_微信小程序
翻译过来的意思是:(承诺中)微程序错误{“errMsg”:“n”avigateTo:故障can未导航到选项卡页“}对象

问题原因:
经过查阅资料,知道使用navigateTo路由跳转方式,保留当前页面,跳转到应用内的某个页面。但是不能跳到 tabbar 页面。

解决办法:只需在js文件的点击事件中,配置跳转的url地址与tabbar中的跳转地址不一样就ok.

我就简单说一下我用navigateTo方式实现的小程序路由跳转过程
1.触发一个点击事件

<view bindtap="toDetail"></view>
 

2.在js文件中设置路由跳转

 // 路由跳转
  toDetail(){
    wx.navigateTo({   
      url:"/pages/detail/detail"
   })
  },
 

navigateTo路由跳转方式可以实现历史回退
大家也可以去了解一下其他的路由跳转方式
其他路由的一些简单介绍:

wx.navigateTo()  带历史回退,不能跳转到tabbar页面

wx.redirectTo() 不保留历史,跳转到另一个页面,不能返回到上一页面
//相当于vue中的路由跳转方式this.$router.replace()

wx.switchTab() 只跳转到tabBar页面,不带回退

wx.reLaunch() 即能跳转到tabBar页面,也能跳转到非tabBar页面,不带历史回退

 

关于路由详解可查阅官方文档:https://developers.weixin.qq.com/miniprogram/dev/api/route/wx.navigateTo.html