与小程序的相爱相杀

Q1:自定义组件时,canvas组件无法注册

ready(){
const ctx = wx.createCanvasContext('back-canvas')
ctx.setFillStyle('red')
ctx.fillRect(10, 10, 150, 75)
ctx.draw();
}
<canvas class='canvas' canvas-id="back-canvas" style="width:200px;height:200px;"></canvas>
// createCanvasContext方法是有两个参数的,在page页面默认传了一个this,组件里面 需要手动传this
const ctx = wx.createCanvasContext('myCanvas',this);

Q2:使用image标签的binderror方法,避免图片URL无效

Q3:生命周期onLoad只加载一次只是对页面不属于栈顶有效,如果页面属于栈顶,则页面onLoad会随页面加载多次

Q4:选择拍照功能和相册选择图片,原有的页面会onHide

Q5:margin-bottom在iOS环境下无效,建议改成padding-bottom

Q6:wx.createInnerAudioContext()播放语音先try销毁再新建

Q7:小程序console过多报错:

Uncaught TypeError: Converting circular structure to JSON

解决办法: 注释掉console.log

Q8:setNavigationBarTitle动态异步设置title存在bug,目前官方正在解决中…

Q9:wxs文件解决wxml中不能写计算逻辑问题

Q10:setData修改数组某一项值时可以不用全局赋值

var price = 'goods['+index+'].price'
this.setData({
[price]:'changed data'
})

Q11:微信小程序超级大坑之40029(invalid code)

在小程序新建的时候就应该输入你正式的AppID,如果使用修改的AppID,则无法使用。

jscode2session会返回{"errcode":40029,"errmsg":"invalid code, hints: [ req_id: m3yw8a0472th20 ]"}

不能通过修改project.config.json中的AppID来实现:

必须重新创建新的小程序项目。

Q12:web-view会自动修改导航栏标题 (暂无方案)

Q13:小程序里修改swiper指示点位置居右

.wx-swiper-dots.wx-swiper-dots-horizontal{
position:absolute;
right:0rpx;
padding-right: 30rpx;
text-align: right;
width: 100%;
}

Q14:iOS上new Date()出现NAN情况

Android: +new Date('2018-09-10 13:23') =1536556980000
iOS: +new Date('2018-09-10 13:23') = NAN

ios手机上不能正确转换这种格式,将-改为/就可以了,如:

Android: +new Date('2018/09/10 13:23') =1536556980000
iOS: +new Date('2018/09/10 13:23') = 1536556980000