本篇主要记录在小程序学习过程中个人认为需要注意的点以及碰到过的问题,内容比较零散~~~

1.navigateTo, redirectTo 只能打开非 tabBar 页面;switchTab 只能打开 tabBar 页面

当使用navigateTo, redirectTo打开一个tabBar页面时,页面无响应,控制台会有log输出

1
Invoke event goList in page: pages/index/index

2.worker的postMessage在setTimeout和setInterval中调用失败

1
2
3
4
5
6
7
8
9
10
11
12
13
14
worker.onMessage((msg) => {
console.log('[Worker] on appservice message', msg)
const buffer = msg.buffer
console.log('[Worker] on appservice buffer length ', buffer)
console.log('[Worker] on appservice buffer', utils.ab2str(buffer))

// 模拟异步处理
setTimeout(() => {
worker.postMessage({
msg: 'response from worker: ' + utils.test(),
buffer: utils.str2ab('response arrayBuffer from worker')
})
}, 1000)
})
1
2
3
4
5
6
7
8
9
10
11
VM32:3 Uncaught ReferenceError: Reporter is not defined
at setTimeout (eval at self.onmessage.event (weixinworker.js:6), <anonymous>:3:11999)
at eval (eval at self.onmessage.event (weixinworker.js:6), <anonymous>:13:3)
at eval (eval at self.onmessage.event (weixinworker.js:6), <anonymous>:3:26333)
at Array.forEach (<anonymous>)
at a.eval (eval at self.onmessage.event (weixinworker.js:6), <anonymous>:3:26291)
at a.emit (eval at self.onmessage.event (weixinworker.js:6), <anonymous>:3:20631)
at eval (eval at self.onmessage.event (weixinworker.js:6), <anonymous>:3:16409)
at eval (eval at self.onmessage.event (weixinworker.js:6), <anonymous>:1:4038)
at Array.forEach (<anonymous>)
at Object.v (eval at self.onmessage.event (weixinworker.js:6), <anonymous>:1:3996)

原因暂时不知道……

3.请勿在 scroll-view 中使用 textarea、map、canvas、video 组件

4.在滚动 scroll-view 时会阻止页面回弹,所以在 scroll-view 中滚动,是无法触发 onPullDownRefresh

5.swiper组件中只可放置<swiper-item/>组件,否则会导致未定义的行为

6.swiper组件在使用过程中,如果在 bindchange 的事件回调函数中使用 setData 改变 current 值,则有可能导致 setData 被不停地调用,因而通常情况下请在改变 current 值前检测 source 字段来判断是否是由于用户触摸引起。

7.带有maxlength属性的组件,长度是指的value值的length值,不考虑中英文字节数的考虑

8.textarea 的 blur 事件会晚于页面上的 tap 事件,如果需要在 button 的点击事件获取 textarea,可以使用 form 的 bindsubmit

9.map 组件使用的经纬度是火星坐标系,调用 wx.getLocation 接口需要指定 type 为 gcj02