微信小程序 bug 集中营

本文档记录了微信小程序开发中遇到的各种问题和解决方案,包括swiper轮播图、tabBar与switchTab、组件与API、flex布局、图片样式、搜索框、自定义选项卡、modal组件、HTML解析等常见坑点,提供了详细的代码示例和问题分析,帮助开发者避免和解决小程序开发过程中的困扰。
摘要由CSDN通过智能技术生成

微信小程序 bug 集中营

create by jsliang on 2018-9-17 17:58:56
Recently revised in 2018-10-18 09:38:15

 

Hello 小伙伴们,如果觉得本文还不错,记得给个 star , 你们的 star 是我学习的动力!GitHub 地址

 GitHub 最新更新:2018-10-17 13:34:11。追求最新文章的小伙伴可前往下载,掘金上的文章每周六、日更新。

写在前面

 首个微信小程序实践记录:
 工作量: PSD 18 张 (导出的 JPG 30 张)
 耗时:12 个工作日
 总结1: 在页面制作商,需要 3 周工作日(工作 15 天)搞定,前后端对接口另计。实际上,12 个工作日可以搞定所有页面,但是应该往前铺 1.5D 熟悉框架,往后铺 1.5D 整理代码。当然每个人的耗时可能不同,可根据个人实际情况进行调整。
 总结2:在 API 调用上,根据接口数量可能需要 7-12 个工作日进行 API 调用,难点表现在: 1. 接口不够丰富,数据量不足; 2. 接口数据不够正式真实,跟前面的假数据相差太大; 3. 接口可能没法正常调用 等原因。故因根据小程序业务逻辑进行工作时长的报备。

这里有 jsliang 微信小程序开发中遇到的所有坑,以及在填坑过程中的一些个人经验。jsliang 利用这篇教程存储一些常用的微信小程序开发技巧,方便查找。它可能教不了你什么,但至少能省下你百度的功夫。

请结合 《目录》 和 《返回目录》 来进行跳转,获得更好的阅读体验。

图

 本文技术支持:Ansen江

注1:由于更新频繁,有时候平台上的文章版本可能没有图片或者目录无法跳转,所以小伙伴需要获取最新资料的,请前往 GitHub:地址

注2:如果小伙伴使用的是手机版打开,那么推荐小伙伴使用电脑打开,因为各平台的手机端大都不支持页内跳转,看起来比较费劲。

 

一 目录

 目前已有 47 个坑。

请各位按目录检索时注意:
3.1、3.2、3.3…… 等二级目录对应着一个章节。
3.1.1、3.1.2、3.1.3…… 等三级目录将该二级目录这个大章节详细拆分成诸多小坑,方便查看。

 

目录
一 目录  
二 前言  
三 填坑实战  
3.1 swiper 轮播图 5
  3.1.1 行内样式无效  
  3.1.2 图片样式修改不了  
  3.1.3 swiper 属性值设置  
  3.1.4 轮播图图片跳转  
  3.1.5 wx:key  
  3.1.6 实战代码  
3.2 tabBar 与 switchTab 3
  3.2.1 底部导航跳转  
  3.2.2 自定义底部导航  
  3.2.3 自定义组件  
3.3 px、rem 与 rpx 1
3.4 微信 web 开发者工具 2
  3.4.1 无法输入中文  
  3.4.2 无法滑动滚轮  
3.5 组件与 API 2
  3.5.1 概念混淆:组件 VS API  
  3.5.2 API 查询不到对应的方法  
3.6 flex 布局 2
  3.6.1 基础概念  
  3.6.2 左右布局  
  3.6.3 混合布局  
3.7 background-image 套用本地图片无效 1
3.8 <block> 与 <view> 1
3.9 搜索框 2
  3.9.1 margin-top 无法上浮  
  3.9.2 改造 WeUI 搜索框  
3.10 微信小程序分享 1
3.11 border-box 设置 1
3.12 自定义导航条 6
  3.12.1 WeUI 选项卡  
  3.12.2 自定义选项卡效果与实现  
  3.12.3 绑定事件如何传递数据  
  3.12.4 不允许驼峰  
  3.12.5 获取 data 数据  
  3.12.6 实现文字省略  
3.13 黑科技:<modal> 2
  3.13.1 被遗弃的 <modal>  
  3.13.2 四种弹窗写法  
3.14 小程序解析 HTML 6
  3.14.1 解析 HTML 的三种方法  
  3.14.2 wxParse  
  3.14.3 rich-text  
  3.14.4 web-view  
3.15 诡异的 open-type 1
3.16 <button>去样式及其内嵌<image> 1
3.17 下拉刷新和上拉加载 2
3.18 获取 input 的值 1
3.19 onLaunch 加载问题 2
  3.19.1 小程序执行顺序  
  3.19.2 路由守卫  
3.20 request 封装与 api 抽离 1
3.21 判断数据是否读取完 1
3.22 客服系统研究 1
3.23 文件在线预览 2
四 网友补充  
4.1 文件夹读取报错 1
4.2 textarea问题多多 1

 

二 前言

返回目录

本文章原名【微信小程序 100 坑】

 微信小程序的开发教程,或许写出来是非常受欢迎的。
 但是:

  • 第一,微信小程序是国内的,有中文文档,虽然它的文档说明有点坑,但好歹有文档,阅读理解对小伙伴们来说不是问题。
  • 第二, jsliang 的文笔并没有想象中的那么好,想想如果我带你们走了一遍小程序开发,然后你们以为是一条平坦路,结果碰到一堆坑坑洼洼,咋办?最后的锅,会不会到我背啊,可怕!

 所以,在这里, jsliang 结合 “日常躺坑” ,先为你解决小程序的 100 个坑!虽然现在可能还不够,但是第一天我就碰到 4/5 个了,我想我可以帮你们躺完 100 个的!!!
 现在的微信开发者工具显示的开发版本是:"libVersion": "2.0.4"
 如果你开发的版本已经解决了这个 bug ,或者你觉得这个 bug 还有其他解决方法,或者你觉得这个玩意还有其他 bug ,请告诉我,我会补充到这篇文档上,顺带记上您的大名,谢谢!
QQ: 1741020489

 

三 填坑实战

返回目录

 这里的坑:

  • 有的来源于微信自带的开发文档:小程序开发文档。在文档中,你会发现很多的乐趣!毕竟,你不知道什么时候中文成为了你的语言障碍~
  • 有的是开发中遇到的,然后结合大量的百度结果,进行的有效性总结。

 希望小伙伴在百度中或者无意看到这篇文章,请熟练使用浏览器的 Ctrl + F,查找需要的问题答案。

 

3.1 swiper 轮播图

返回目录

本组件目前已有 5 个坑,有兴趣的小伙伴可以详看。

 

  代码来源于该地址:微信组件 swiper 。

 为方便小伙伴查看,下面贴出原版代码:

demo.wxml

<swiper indicator-dots="{
  {indicatorDots}}"
  autoplay="{
  {autoplay}}" interval="{
  {interval}}" duration="{
  {duration}}">
  <block wx:for="{
  {imgUrls}}">
    <swiper-item>
      <image src="{
  {item}}" class="slide-image" width="355" height="150"/>
    </swiper-item>
  </block>
</swiper>
<button bindtap="changeIndicatorDots"> indicator-dots </button>
<button bindtap="changeAutoplay"> autoplay </button>
<slider bindchange="intervalChange" show-value min="500" max="2000"/> interval
<slider bindchange="durationChange" show-value min="1000" max="10000"/> duration

 

demo.js

Page({
  data: {
    imgUrls: [
      'http://img02.tooopen.com/images/20150928/tooopen_sy_143912755726.jpg',
      'http://img06.tooopen.com/images/20160818/tooopen_sy_175866434296.jpg',
      'http://img06.tooopen.com/images/20160818/tooopen_sy_175833047715.jpg'
    ],
    indicatorDots: false,
    autoplay: false,
    interval: 5000,
    duration: 1000
  },
  changeIndicatorDots: function(e) {
    this.setData({
      indicatorDots: !this.data.indicatorDots
    })
  },
  changeAutoplay: function(e) {
    this.setData({
      autoplay: !this.data.autoplay
    })
  },
  intervalChange: function(e) {
    this.setData({
      interval: e.detail.value
    })
  },
  durationChange: function(e) {
    this.setData({
      duration: e.detail.value
    })
  }
})

 

 好的,上面就是微信官方文档的演示代码,如果你跟着演示代码走了一遍碰到疑问的话,看看这里我挖的土是不是能填好你的坑:

 

3.1.1 行内样式无效

返回目录

demo.wxml 中出现的 <image src="{ {item}}" class="slide-image" width="355" height="150"/> 这行, width 和 height的行内属性是忽悠老百姓的,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值