使用element 自定义上传组件(http-request属性)时界面抖动 (重复显示新增动画 回显)

自定义显示遇到显示完成新增动画,上传完成之后又重复显示新增动画的问题

参考博客 以及element-ui组件el-upload自定义上传时界面抖动

网上找的图,侵删

 

 问题1:使用 http-request 不能触发 on-success 函数。

  原因:

  使用 http-request 时,需要返回 promise 对象,才会触发 on-success。

解决方法:

  将 ttp-request 函数结果返回 promise 对象即可。

问题2: 上传抖动问题

原因:

一般使用自定义上传图片,即将后台返回的数据跟处理成 el-upload 需要的格式。

fileSuccess(res, file, filelist) {

   this.fileList.push({...res.data});<br>},


此时,push 进去 file 与 内部的 file 是不一样的(uid)不一样。所以导致组件内部的交互错乱。但是 el-upload 组件内部是这么处理的,大概意思就是,你上传的时候,内部会有个对应的 fileList (uploadFiles),当你上传的时候,内部 uploadFiles 会添加一个 file 信息,当你从外部 push 时,会进入 el-upload 的watch 如下图

 解决方法:

在 on-success 里直接赋值

onSuccess(res, file, filelist) {

    this.fileList = filelist;

},


 如果,外部是服务器传回的地址,就在使用一个 tempList 来管理服务器的图片上传列表。然后其他的跟原来的组件没啥区别,在做相应的操作的同时处理 tempList 。

如果上述方法无法解决回显问题 可以试试 这个方法 

隐藏 loading 元素

 

/* 直接禁用 loading 元素*/
.el-upload-list__item.is-ready,
.el-upload-list__item.is-uploading {
  display: none !important;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值