注意navigateTo官方说明:
- 页面跳转路径有层级限制,不能无限制跳转新页面
- 跳转到
tabBar 页
面只能使用switchTab
跳转 - 路由API的目标页面必须是在
pages.json
里注册的vue页面。如果想打开web url,在App平台可以使用 plus.runtime.openURL或web-view组件;H5平台使用 window.open;小程序平台使用web-view组件(url需在小程序的联网白名单中)。在hello uni-app中有个组件ulink.vue已对多端进行封装,可参考。
下面为示例目录
---
|-pages
|-search
| |-search
|
|-tabbar
| |-index
| | |-index
| |
查找
通过fail
方法打印看看
uni.navigateTo({
url: "/pages/search/search",
fail (error) {
console.log(error)
}
})
解决
1、看navigateTo
中的url
路径对不对
url
说明:需要跳转的应用内·非 tabBar 页面·的路径 , 路径后可以带参数。参数与路径之间使用?分隔,参数键与参数值用=相连,不同参数用&分隔;如 'path?key=value&key2=value2',path为下一个页面的路径,下一个页面的onLoad函数可得到传递的参数
假如现在是 index 跳到 search,正确写法(不要漏了pages前面的/
)
uni.navigateTo({
url: "/pages/search/search"
})
2、看 pages.json
中有没设置路由
一般出现这种情况,是因为手动创建目录和文件,然后忘了在 pages.json 加上了路由路径。如果用 hbuilderx 创建文件 会自动创建路由到 pages.json
{
"pages": [{
"path" : "pages/search/search"
}]
}
网友评论