神坑---小程序

1,964 阅读3分钟

小程序开发者工具---01

预览和虚拟机显示问题:

  • 只能同时显示一个,要么虚拟机要么真机,另一个数据不能获取,显示空白页。
  • 当真机预览的时候模拟机没有数据,开发者工具清空数据缓存,模拟机显示正常,同时真机显示空白页,不能获取数据,并且再次扫描也不能获取数据,只能删除手机微信小程序才能继续预览。

小程序样式刷新---02

  • 小程序页面点击通过class名控制页面样式,如果有跳转的话,跳转后再返回,样式不会加载,会发现class名正常发生改变,但样式不会加载,只能使页面刷新样式重新渲染才可。
  • 处理方法:通过wx:if方法控制两个模版的显示问题,这样就可以在第一次渲染的时候把所需的模版也渲染完毕,只需通过if判断模版的消失和显示即可。

小程序数据获取---03

  • 向组件传递数据的时候,在组件内打印this会显示data中的所有数据,并且打印this.data也能完美显示,但打印里边的数组或者对象就不会显示,获取不到。例如:打印this:
o {__wxWebviewId__: 63, __wxExparserNodeId__: 3}
__wxExparserNodeId__:3
data:Object
cause:Array{totalDuration: "33:20", publishTime: "2018.04.24", lecturerId: "988616923895825018", number: 0, topicId: "988701293738459136", …}
length:1
nv_length:(...)__proto__:
Array(0)
idx:"988701293738459136"
isNormalOrder:true
isSubscribed:true
planCourseNum:2
__proto__:Object
dataset:Object
id:""
is:"components/lesson-container/lesson-container"
properties:(...)
__proto__:Object
  • data里是有数据的,但打印this.data.length就能获取到数值,但打印this,data.cause数组的时候就会获取到一个空数组;
  • 巨坑!!!
  • 解决办法:想要在子组件里往父组件传值过来的数组中添加属性,别想了,只能从根添加,通常这也都是配合for循环遍历用的,如果有用到的属性,最好在开始的时候就编写好,或者for循环就一起封装到组件中。

小程序自带属性的坑---04

小程序标签image 自带属性,有缩放的有剪裁的,缩放的只有:
  • 缩放 scaleToFill 不保持纵横比缩放图片,使图片的宽高完全拉伸至填满 image 元素
  • 缩放 aspectFit 保持纵横比缩放图片,使图片的长边能完全显示出来。也就是说,可以完整地将图片显示出来。
  • 缩放 aspectFill 保持纵横比缩放图片,只保证图片的短边能完全显示出来。也就是说,图片通常只在水平或垂直方向是完整的,另一个方向将会发生截取。
  • 缩放 widthFix 宽度不变,高度自动变化,保持原图宽高比不变;
  • 需求要一个保持高度不变,宽度自适应的就没办法了,还有这些mode属性值只能添加一种,坑啊,难不成还要在自己搞个canvas去缩放剪裁?还有aspectFill的截取只会截取中间一部分,不管你有多高。。。
  • 希望以后这api尽量完善下吧。。。
像video这种原生的组件,无力吐槽啊
  • 安卓不清楚,在ios上这些原生组件的层级是最高的。。。就算你z-index设置为9999也没用。
  • 想要在这类标签上添加元素的话只能通过两个标签:cover-view cover-image并且这两个标签内不能有其他标签,不然不读取。。。。