在vue的组件中, 能获取到数组, 但是取不到长度

问题是这样的:想实现的功能是上传相册时,获取用户上传的照片数组,只显示前5张为大图,其余都显示小图,效果如下图:
图片描述

获取数组的代码如下图:
图片描述

第一次上传两张图之后,打印台数据如下:
图片描述

第二次上传4张图之后,打印台数据如下:
图片描述

打印的是上一轮选择的图片长度,第三次再上传时,打印的就是上两次一共的图片长度。按理来说,第一次应该打印的长度值就是2。
所以使用splice就不能正常截取数组长度了,求大神帮忙解答下这个问题。。。

阅读 16.2k
3 个回答

读取文件需要时间,直接打印的是尚未读取的状态,当你点开控制台里的数据的时候又已经读取完毕了,所以显示错误,你给console.log加个延时看看对不对。

render.load是异步执行的,打印的时候可能还没有加载完成

我觉得问题点在 你向imgUrlList push的时候是在reader.onload事件里,这就导致你的代码不是顺序执行输出了,你把赋值写在事件里了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏