Vant Weapp小程序蹲坑之navigateTo:fail page not found

问题

当前调试的小程序中使用了wx.navigateTo导航方案,运行中出现如题所示错误。初步感觉这种提示再直观不过,但是由于工具使用经验不足,还免不了“浪费”一些时间去搜索问题的根源。

解答

在确定页面及路径的确存在且表达无误后,只好把注意力转移到其他几个相关文件的表达上。已知:在mpvue+vant weapp方案下,一个典型的小程序页面典型包括三个文件,如下图所示:

对比几个已经调试通过的页面文件,我打开了图中所示的本页面配置文件main.json,发现内容如下:

{
  "navigationBarTitleText": "Popup 弹出层",
    "van-button": "/static/vant/button/index",
    "van-popup": "/static/vant/popup/index"
}

而另外通过的页面的配置文件内容如下:

{
  "usingComponents": {
    "van-button": "/static/vant/button/index",
    "van-tree-select":"/static/vant/tree-select/index"
  }
}

显然,问题出在前面漏掉了usingComponents内容,添加上后,问题得到解决!

附加

根据微信小程序官方文档(https://developers.weixin.qq.com/miniprogram/dev/framework/custom-component/),
其中介绍了自定义组件中配置文件.json的使用,特别是有关usingComponents的使用说明,但是尚不详细。

在运行上面修改后结果时,仔细观察发现页面上面标题栏内容并没有改变成“Popup 弹出层”。进一步追究分析发现,我在本例中是通过wx.navigateTo动态加载与导航的页面,而整个小程序端标题栏的修改需要另外的逻辑,其中一种典型的方案是:

(1)在整个小程序配置文件app.json中进行修改,先看一下修改前的内容:

{
  "pages": [
    "pages/index/main",
    "pages/logs/main",
    "pages/counter/main",
    "pages/button/main"
  ],
  "window": {
    "backgroundTextStyle": "light",
    "navigationBarBackgroundColor": "#fff",
    "navigationBarTitleText": "WeChat",
    "navigationBarTextStyle": "black"
  }
}

这里有两个需要注意。第一,pages段代表了静态的小程序能够定位到的页面文件名及路径(第一个页面必须位于首位)
。第二,window段中的navigationBarTitleText静态在指定了小程序标题栏的内容,这个内容在实际运行中可以通过API方式动态修改。
需要补充的是:
如果页面很多,则不需要全部列举页面于pages段中的,但是第一个主页必须显示于此。其他的,可以使用例如wx.navigateTo这样的API动态加载对应的页面路径即可。
第二,修改小程序标题栏其实也可以使用上述对应于局部页面的配置文件中的navigationBarTitleText字段来实现。但是,不仅要在上面的页面配置文件main.json中添加navigationBarTitleText字段,而且还要在整个小程序配置文件的pages段指定对应的页面文件名及路径才行!于是修改有两处:

局部页面配置文件main.json中添加navigationBarTitleText字段:

{
  "navigationBarTitleText": "Popup 弹出层",
  "usingComponents": {
    "van-button": "/static/vant/button/index",
    "van-popup": "/static/vant/popup/index"
  }
}

整个小程序配置文件的pages段指定对应的页面文件名及路径:

{
  "pages": [
    "pages/index/main",
    "pages/logs/main",
    "pages/counter/main",
    "pages/popup/main"
  ],
  "window": {
    "backgroundTextStyle": "light",
    "navigationBarBackgroundColor": "#fff",
    "navigationBarTitleText": "WeChat",
    "navigationBarTextStyle": "black"
  }
}

注意上面pages段中最后一行!

原文地址:http://blog.51cto.com/zhuxianzhong/2348853

时间: 2024-08-30 11:25:16

Vant Weapp小程序蹲坑之navigateTo:fail page not found的相关文章

Vant Weapp小程序蹲坑之使用submit-bar组件

本文介绍在Vant Weapp小程序开发中使用submit-bar组件时需要注意的部分问题.坑来坑去,先上示例代码吧,由简单到复杂顺序. main.js代码 main.json代码 index.vue代码 <template> <view> <van-panel title="基础用法"> <van-submit-bar :price="3050" button-text="提交订单" @submit=&

Vant Weapp小程序蹲坑之使用toast组件

问题 使用Mpvue框架结合Vant Weapp组件库进行微信小程序开发中使用toast组件时,不小心又陷入"坑"中,当然主要还是路径问题. 注意点 使用toast组件时,与其它最普通的Vant Weapp组件相比,有几点需要注意.为了更方便理解,还是先上源码(index.vue),如下: <template> <div> <van-panel title="基础用法"> <van-picker :columns="

Vant Weapp小程序蹲坑之使用checkbox组件

引子 checkbox-group及checkbox组件是开发小程序中频繁使用的组件,当然在vant weapp组件库中对应的分别是van-checkbox-group和van-checkbox.遗憾的是,官方提供的仅是组件在原生微信小程序框架下的用法,但我们所关注的是如何把这些组件改写到mpvue框架中.有关此二组件常用属性,在文后引用地址(官方)都有详细介绍,在此省略. 问题1:数据绑定与模板字符串问题 这个问题困绕了我很长时间,搜索网络,包括google英文搜索,几乎没有找到相应的答案.首

Vant Weapp小程序蹲坑Page is not constructed because it

问题 完整的错误提示应当是"Page is not constructed because it is not found",对应截图如下: 在纠结了N遍后,发现:dist路径下没有生成.vue.wxml文件!?正常编译通过的dist路径下应当是生成.vue.wxml文件的,如下所示: 即没有生成index.vue.wxml,其他几个文件都生成了. 从错误的字面意思上分析是"页面没有构造成功,因为没有找到它".前面二十多个页面都通过了,其基本框架与思路与之一致,而且

小程序报错request:fail ssl hand shake error 安卓请求不到返回苹果手机可以

小程序服务器配置wx.request请求,苹果手机可以接收到返回,安卓手机接收不到返回信息,有时候是 报错request:fail ssl hand shake error. 解决步骤: 1.先检查服务器证书是否配置好,我的服务器是apache的,证书是腾讯云免费申请的,把下载到的三个证书放到服务器上面,修改配置文件(https.conf?),由于我使用的是宝塔的面板,所以也不清楚他是配置的哪个文件: 配置如下: SSLCertificateFile /www/wwwroot/xcxcert/2

小程序回调函数success fail complete 以及Promise风格调用

小程序中的三种回调函数,success fail complete ,success在成功时执行,fail在失败时执行,而complete无论怎样都是执行! test云函数下的index.js // 云函数入口文件 // const cloud = require('wx-server-sdk') // cloud.init() // 云函数入口函数 exports.main = async (event, context) => { // sum: event.a + event.b let{

uniapp开发微信小程序跳转出现navigateTo:fail page &quot;pages/user/pages/user/address/address&quot; is not found

在app.json文件中pages中: ,{ "path" : "pages/user/address/address", "style" : {} } 在页面组件中: uni.navigateTo({ url: 'pages/user/address/address' }) 结果: 解决方法: 在url前边加上/ uni.navigateTo({ url: '/pages/user/address/address' }) 跳转OK 原文地址:h

小程序中 wx.navigateTo 页面跳转没有反应?

页面js文件中加入 show: function () {wx.navigateTo({url: '/pages/show/show'})} 这个函数 目的在于要做跳转到新的页面,但是你可能会遇到一个问题,跳转没有反应. 你可能重建个新目录名称又可以了,名称再改为原来的又不可以了,问题出在哪里? 那就是底部菜单app.json已经有这样的url链接过. 解决方法,改成不一样就可以了. 为什么这样,估计是个bug吧 原文地址:https://www.cnblogs.com/hedianzhan/p

逆战:微信小程序开发(二)

一.常用组件 在上一个章节中讲解了封装请求数据的模块,在此处请求轮播图的数据 1.首页轮播图数据的请求以及渲染 1.1 轮播图数据的请求 pages/home/home.js import { request } from './../../utils/index.js' Page({ /** * 页面的初始数据 */ data: { bannerlist: [] }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { request('/