- Image不能绑定触摸移动事件, 无法触发
onTouchStart={}
onTouchMove={}
onTouchEnd={}
- Canvas 需要设置属性type='' 才能使用draw方法
<Canvas
type=''
canvasId='my-canvas'
></Canvas>
this.ctx.draw(false, () => {
console.log('draw');
callback && callback();
});
- componentDidShow
做navigateBack传参时发现componentDidShow无法触发, 打了许多断点, 发现是不小心给页面套了两层redux的connect导致componentDidShow无法正常触发, componentWillMount却不受影响, Taro在onshow, onhide触发之前会去判断有没有这个页面实例, 这个实例在componentWillMount阶段被储存, 因为两层的connect导致这个实例无法被储存, 而无法触发onshow, onhide
- 在不上传图片的情况下使用form-data
// 注意: 这里的Content-Type不是multipart/form-data, 而是multipart/form-data; boundary=XXX
const formdata = (obj = {}) => {
let result = ''
for (const name of Object.keys(obj)) {
const value = obj[name];
result +=
'\r\n--XXX' +
'\r\nContent-Disposition: form-data; name=\"'+ name +'\"'+
'\r\n' +
'\r\n' + value
}
return result + '\r\n--XXX--'
}
res = await Taro.request({
url: baseUrl + options.url,
data: formdata(options.data),
header: {
'Content-Type': 'multipart/form-data; boundary=XXX',
'token': accessToken,
},
method: options.method.toUpperCase(),
timeout: 6000,
dataType: 'json',
});
- 小程序中 Taro.getSystemInfoSync() 获取的windowHeight不准确
// 这个bug仅在安卓出现
const { windowHeight, windowWidth } = await Taro.getSystemInfoSync();
const { system, statusBarHeight } = Taro.getSystemInfoSync()
const isIOS = system.indexOf('iOS') > -1
const navHeight = isIOS ? 0 : (48 + statusBarHeight)
// windowHeight = windowHeight + navHeight
- 小程序在ios中Data对象无法识别带-的日期格式
new Date('2020-10-15 23:59:59') < new Date() // false
new Date('2020/10/15 23:59:59') < new Date() // true
// 解决
new Date('2020-10-15 23:59:59'.replace(/-/g, '/'))