我的编程空间,编程开发者的网络收藏夹
学习永远不晚

微信小程序常见问题有哪些

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

微信小程序常见问题有哪些

这篇文章主要介绍了微信小程序常见问题有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

微信小程序 常见问题:

一:项目结构

微信小程序项目结构主要有四个文件类型,如下

WXML (WeiXin Markup Language)是框架设计的一套标签语言,结合基础组件、事件系统,可以构建出页面的结构。内部主要是微信自己定义的一套组件。

WXSS (WeiXin Style Sheets)是一套样式语言,用于描述 WXML 的组件样式,

js 逻辑处理,网络请求

json 小程序设置,如页面注册,页面标题及tabBar。

注意:为了方便开发者减少配置项,规定描述页面的这四个文件必须具有相同的路径与文件名。

在根目录下用app来命名的这四中类型的文件,就是程序入口文件。

app.json

必须要有这个文件,如果没有这个文件,项目无法运行,因为微信框架把这个作为配置文件入口,整个小程序的全局配置。包括页面注册,网络设置,以及小程序的window背景色,配置导航条样式,配置默认标题。

app.js

必须要有这个文件,没有也是会报错!但是这个文件创建一下就行 什么都不需要写
以后我们可以在这个文件中监听并处理小程序的生命周期函数、声明全局变量。

app.wxss

全局配置的样式文件,项目非必须。

知道小程序基本文件结构,就可以开始研究官方demo了,研究过程中如果有不明白的地方可以去官方文档寻求答案,如果找不到答案或者有疑问,可再此博客留言,相互交流。下面介绍下出现概率较高的几个问题。

二:常见问题

rpx(responsive pixel)

微信小程序新定义了一个尺寸单位,可以适配不同分辨率的屏幕,它规定屏幕宽为750rpx,如在 iPhone6 上,屏幕宽度为375px,共有750个物理像素,则750rpx = 375px = 750物理像素,1rpx = 0.5px = 1物理像素。

这个项目我用的都是rpx尺寸单位,期间遇到一个很奇葩的问题。在相邻的两条信息直接都会有一个分割线,我将线的高度都设置成1rpx,但是不有个别分割线是不显示的

看到没在第一条和第二条直接并没有现实这条线,但是其他的都展示了,分割线的属性是一样的,而且在不同的手机上(分辨率不同)不显示的分割线也是不同的,有的分辨率好几条分割线都不显示,不知道这是模拟器的bug还是rpx的bug。最后分割线的高度尺寸单位使用了px,解决了这个问题。

40013错误

在微信小程序刚出来的时候如果输入AppID提示这个信息就表示没有破解,但是现在官方软件更新可以选择无AppID开发,如下图,我们之间选择无AppID,即可解决此错误。建议安装官方开发工具。可去此处找下载链接。

4058错误

微信小程序创建项目时选择无AppID,创建项目时会生成app.json,app.josn是程序启动最重要的文件,程序的页面注册,窗口设置,tab设置及网络请求时间设置都是在此文件下的。如果你创建的项目目录下没有app.json文件就会报下面的错误。

我们看到上面的错误信息中有个数字-4058,这应该是初入微信小程序遇到最多的错误了,这种一般都是文件缺失,后面有个path,可以对着该路径看看是否存在这个文件。造成这种错误的原因一般都是创建项目选择的目录不正确,或者在app.json注册了一个不存在的页面。

当然还有一种情况就是在app.json文件的pages注册的页面是没有创建的,或者你删除了某个页面,但是没有取消注册也会是-4058错误。

Page注册错误

这个错误可能很容易理解,页面注册错误。页面是通过Page对象来渲染的,每个页面对应的js文件必须要创建page,最简单的方式就是在js文件下写入Page({}),在page中有管理页面渲染的生命周期,以及数据处理,事件都在这完成。这个错误引起的原因一般都是刚创建页面,js文件还有有处理或者忘了处理。所以要养成创建页面的同时在js文件先创建Page的习惯.

Page route错误

字面意思就是页面路由错误,在微信中有两种路由方式一种是在wxml文件使用

如下代码:

wxml文件:

js文件事件处理函数:

bindtap:function(event){
wx.navigateTo({
url: "search/search"
})
}

如果你这样写的话,恭喜你,你就会看到上面提示的错误,这是因为重复调用路由引起的,处理方法就是删除一个路由,删除

<navigator url="search/search">
<navigator url="search/search">
<view class="serach_view_show" bindtap="bindtap"> 搜索</view>
</navigator>
</navigator>

这种也是不允许的,也就是说

Do not have * handler in current page.

大概意思就是当前页面没有此处理,让确定是否已经定义,还指出了错误出现的可能位置pages/message/message,其实这种问题出现一般就是我们在wxml定义了一些处理事件,但是在js文件中没有实现这个时事件的处理方法,就会出现这个错误。那么我们按提示在js文件加上事件处理,如下代码,加上后就不会再有此错误提示。

 bind:function(event){
  wx.navigateTo({
   url: "
pages/logs/logs
"
  })
 },

tabBar设置不显示

对于tabBar不显示,原因有很多,查找这个错误直接去app.json这个文件,最常见的也是刚学习微信小程序最容易犯的错误无外乎下面几种

注册页面即将页面写到app.json的pages字段中,如

"pages":[
  "pages/index/index",
  "pages/logs/logs",
  "pages/account/account",
  "pages/more/more"
 ],

tabBar写法错误导致的不显示,将其中的大写字母B写成小写,导致tabBar不显示。

tabBar的list中没有写pagePath字段,或者pagePath中的页面没有注册

tabBar的list的pagePath指定的页面没有写在注册页面第一个。微信小程序的逻辑是"pages"中的第一个页面是首页,也就是程序启动后第一个显示的页面,如果tabBar的list的pagePath指定的页面都不是pages的第一个,当然也就不会电视tabBar了。
tabBar的数量低于两项或者高于五项,微信官方中明确规定tabBar的至少两项最多五项。超过或者少于都不会显示tabBar。

navigationBarTitle显示问题

通过这个动态图你应该发现问题了,当点击音乐进入音乐界面时,title先显示了WeChatForQQ然后显示的音乐,这个体验肯定是难以接受的,原因是音乐界面的title是在js文件中page的生命周期方法中设置的。
若你不了解生命周期,可以点击查看

Page({
data:{
// text:"这是一个页面"
},
onLoad:function(options){
// 页面初始化 options为页面跳转所带来的参数

 },
 onReady:function(){
  // 页面渲染完成
  //NavigationBarTitle如果此处和json文件都设置,最后展示此处的标题栏
wx.setNavigationBarTitle({
 title: '账户'
})
 },
 onShow:function(){
  // 页面显示
 },
 onHide:function(){
  // 页面隐藏
 },
 onUnload:function(){
  // 页面关闭
 }
})

通过注释你应该明白了,设置标题写在了onReady方法中,也就是页面已经渲染完成了,在onReady之前显示的title就是json文件(覆盖关系,如果在子页面json文件设置title会覆盖app.json全局设置)中的title。可能你会说将wx.setNavigationBarTitle写在onLoad函数中,不过如果这样设置是不对的,因为onLoad执行过后才渲染页面,在渲染页面时title会从json文件中读取,导致onLoad设置的title会只在页面渲染之前展示,之后就显示json文件的tile,所以现在你应该明白ttle设置最优的地方就是给子文件写一个json文件,在文件中写入,如果想改变颜色直接在文件中添加就可以,该文件所写的属性值会覆盖app.json中设置的值。

{
"navigationBarTitleText": "账户"
}

wx.navigateTo无法打开页面

一个应用同时只能打开5个页面,当已经打开了5个页面之后,wx.navigateTo不能正常打开新页面。请避免多层级的交互方式,或者使用wx.redirectTo

本地资源无法通过 css 获取

background-image:可以使用网络图片,或者 base64,或者使用标签

页面间数据传递

微信小程序路由(页面跳转)是通过API wx.navigateTo或者wxml中

 <navigator url="/pages/dynamic/dynamic?title={{item.title}}&message={{item.message}}">
     <view class="item" >
       <view class="item-left">
         <image class="lazy" data-src="{{item.url}}" class="image"/>
       </view>
       <view class="item-middle">
         <view>
            <text class="title">{{item.title}}</text>
         </view>
         <view>
           <text class="message">{{item.message}}</text>
         </view>
      </view>
      <view class="item_right">
        <view><text class="time">{{item.time}}</text></view>
        <view class="mark" wx:if="{{item.count>0}}"><text class="text">{{item.count}}</text></view>
      </view>
     </view>
     <view class="line"></view>
    </navigator>

而数据接收是在js文件的page里接收的,page生命周期有一个onLoad函数,它就是做一些初始化数据的工作,onLoad函数有一个参数options,我们就可以通过key将数据获取,如下

Page({
 data:{
  // text:"这是一个页面"
  isHiddenToast:true
 }
 onLoad:function(options){
  // 页面初始化 options为页面跳转所带来的参数
  console.log(options.title)
   console.log(options.message)

 },
 onReady:function(){
  // 页面渲染完成
 },
 onShow:function(){
  // 页面显示
 },
 onHide:function(){
  // 页面隐藏
 },
 onUnload:function(){
  // 页面关闭
 },
 bind:function(event){
wx.navigateTo({
 url: "
pages/logs/logs
"
})
 },
})

感谢你能够认真阅读完这篇文章,希望小编分享的“微信小程序常见问题有哪些”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网行业资讯频道,更多相关知识等着你来学习!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

微信小程序常见问题有哪些

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

微信小程序开发有哪些常见的问题

这篇文章主要介绍了微信小程序开发有哪些常见的问题的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇微信小程序开发有哪些常见的问题文章都会有所收获,下面我们一起来看看吧。1.小你程序到底是什么?小程序是无需下载和安装
2023-06-27

微信小程序开发常见的问题有哪些

这篇文章主要介绍微信小程序开发常见的问题有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1、什么是小程序? 和公众号类似,企业可自行认证申请发布,免费获取微信流量。但小程序比公众号的内容形式更丰富,兼顾网站、Ap
2023-06-27

微信小程序常见面试题有哪些

这篇文章主要介绍了微信小程序常见面试题有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇微信小程序常见面试题有哪些文章都会有所收获,下面我们一起来看看吧。1.在小程序中如何获取用户信息?(1)小程序为升级前:
2023-06-30

微信小程序开发常见的问答题有哪些

这篇文章主要介绍“微信小程序开发常见的问答题有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“微信小程序开发常见的问答题有哪些”文章能帮助大家解决问题。  Q:navigateTo 没有返回按钮。
2023-06-26

微信小程序开发过程中常见的问题有哪些

这篇文章将为大家详细讲解有关微信小程序开发过程中常见的问题有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Q:为什么脚本内不能使用window等对象A:页面的脚本逻辑是在JsCore中运行,JsCor
2023-06-26

微信小程序开发常见问题有哪些及怎么解决

这篇“微信小程序开发常见问题有哪些及怎么解决”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“微信小程序开发常见问题有哪些及怎么
2023-06-26

微信小程序开发常见问题是什么

这篇文章主要介绍微信小程序开发常见问题是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!  Q:navigateTo 没有返回按钮。  A:Android 设计如此,需要点击物理返回键返回。  Q:关于微信小程序地
2023-06-26

HBuilderX开发小程序的常见问题有哪些

这篇文章给大家分享的是有关HBuilderX开发小程序的常见问题有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。第一步:你要有一个微信小程序,在微信开发者平台上至于怎样申请微信开发者appid和微信开发者平台
2023-06-29

微信小程序常用的API有哪些

本文小编为大家详细介绍“微信小程序常用的API有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“微信小程序常用的API有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、 系统常用api1. wx.ope
2023-07-04

Python程序员常见的问题有哪些

这篇文章主要讲解了“Python程序员常见的问题有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python程序员常见的问题有哪些”吧!语用错误让我们从基础开始,从那些刚学习编程的人钻研
2023-06-27

win7安装程序常见问题有哪些

1. 安装程序无法启动或运行2. 安装过程中出现错误消息或警告3. 安装程序崩溃或卡住不动4. 安装过程中出现冲突或兼容性问题5. 安装程序无法找到所需的文件或组件6. 安装程序被防火墙或杀毒软件拦截7. 安装程序要求管理员权限,但无法获取
2023-09-02

微信小程序api有哪些

这篇文章主要介绍微信小程序api有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!  API  框架提供丰富的微信原生API,可以方便的调起微信提供的能力,如获取用户信息,本地存储,支付功能等。  说明:  wx.
2023-06-26

微信小程序常用表单组件有哪些

今天小编给大家分享一下微信小程序常用表单组件有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1、常用表单组件1.1 bu
2023-06-30

微信小程序有哪些入口

这篇文章主要介绍了微信小程序有哪些入口,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1、短视频入口现在的短视频也是推广的一种手段,而有很多的人对短视频有很大的兴趣,所以,把小
2023-06-27

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录