Taro + 小程序开发踩坑

  • 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, '/'))
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。