关于wx.chooseImage()的一些问题?
发布于 7 年前 作者 taomin 2540 次浏览 来自 问答

最近在做小程序中的图片上传组件时发现几个问题(基本模仿uploader,但我看不懂uploader的文档然后没用😂)

想实现这种效果:

点击第三幅图片添加图片并在前面显示

我想用循环渲染解决:

//index.js
data: {
    imagePathList:[]
     
  },

然后用了2种方式:

1.第一次脑残了,在index.js开头定义了 var image=new Array();

然后给第三张图bindtap:“addImage”

addImage:function(e){
    var that=this;
    wx.chooseImage({
      count: 2,
      sizeType:['compressed'],
      success: function(res) {)
        that.setData({
          imagePathList: res.tempFilePaths
        })
      }
    })
  },

这种情况下如果同时选择2张图片会出现

并报错

tempFilePaths[]和image[]中都有2个相同的文件路径,然后再继续点击加号图片依然可以添加图片且

  • 若只选择一张图片,图片正常显示且tempFilePaths[].length=1;  image[].length=3.(新增加的为tempFilePaths[]中的那唯一一个路径值),不报错

  • 若再选择2张图片,图片再度不能显示tempFilePaths[].length=2;  image[].length=3.(新增加的为tempFilePaths[]中的第一个路径值),报错同上图

且之后每次操作重复以上现象


2.

后来想想不需要image[],直接保留一个

that.setData({
          imagePathList: res.tempFilePaths
        })

便可以让二者同步且正常实现功能

所以有些好奇第一种情况的错误原因

回到顶部