element upload 钩子函数的坑及解决

 更新时间:2022年10月08日 17:11:57   作者:琞、小菜  
这篇文章主要介绍了element upload 钩子函数的坑及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

element upload 钩子函数的坑

因为需求需要我将element 的upload组件放在了el-dialog中,但是坑就在这

看图片的上方是不是可以看到上传成功四个大字,但是它并不是真的在上传成功后显示出来的,只要页面加载成功,打开和关闭el-dialog都会出来这四个大字,来看代码

这是upload部分设置代码:

(请忽略方法名称的不规范,这里只做个演示)

on-success调用的方法

success () {
  this.$message.success('上传成功')
}

以上可以看出我们并没有上传文件,但是却触发了上传成功的钩子,不仅仅on-success是这样,on-error也是会被这样触发。

所以最后我把代码改成了如下:

el-upload部分代码:

<el-upload
        class="upload-demo"
        ref="upload"
        drag
        :action="uploadBusinessType"
        accept=".xls, .xlsx, .csv"
        :auto-upload="false"
        :on-success="handleAvatarSuccess"
        multiple
      >

方法的代码:

handleAvatarSuccess(...params) {
    ‘这里代码就不在表述'
    }

…params会返回一个数组,里边包含了这么一些东西

其中包含的有后端返回的请求成功的状态值,最终我是通过这个来判断是否上传成功,规避了在打开和关闭el-dialog就触发钩子的问题

element-ui中组件函数钩子自带参数,不能添加参数问题

在element-ui中的组件函数钩子一般都是自带参数如:

//上传组件
<el-upload
  class="upload-demo"
  action="https://jsonplaceholder.typicode.com/posts/"
  :on-preview="handlePreview"
  :on-remove="handleRemove"
  :before-remove="**beforeRemove**"
  multiple
  :limit="3"
  :on-exceed="handleExceed"
  :file-list="fileList">
  <el-button size="small" type="primary">点击上传</el-button>
  <div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div>
</el-upload>

API中解释:

on-remove 文件列表移除文件时的钩子 function(file, fileList)

也就是上面的beforeRemove函数自带file, fileList这两参数

beforeRemove(file, fileList){
//就这两参数
}

那么想要带自己的参数呢,,尤其一般在表格中的上传,肯定要携带当前一行的参数(动态参数)时;

我们对before-remove属性修改

//上传组件
<el-upload
  class="upload-demo"
  action="https://jsonplaceholder.typicode.com/posts/"
  :on-preview="handlePreview"
  :on-remove="handleRemove"
  :before-remove="(file,fileList)=>{
     return beforeRemove(file,fileList,data)
}"
  multiple
  :limit="3"
  :on-exceed="handleExceed"
  :file-list="fileList">
  <el-button size="small" type="primary">点击上传</el-button>
  <div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div>
</el-upload>

在before-remove上在return 一个函数,并携带data(自己想要的参数)

这样在函数beforeRemove中就可以拿到data了

beforeRemove(file,fileList,data){
debugger
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Vue中data数据初始化方法详解

    Vue中data数据初始化方法详解

    这篇文章主要介绍了Vue中data数据初始化方法,数据初始化是在组件实例化时发生的,在组件中,可以通过data选项来定义组件的初始数据,需要详细了解可以参考下文
    2023-05-05
  • 浅谈vue中组件绑定事件时是否加.native

    浅谈vue中组件绑定事件时是否加.native

    今天小编就为大家分享一篇浅谈vue中组件绑定事件时是否加.native,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • 详解Vue微信公众号开发踩坑全记录

    详解Vue微信公众号开发踩坑全记录

    本篇文章主要介绍了详解Vue微信公众号开发踩坑全记录,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • 基于Vue 服务端Cookies删除的问题

    基于Vue 服务端Cookies删除的问题

    今天小编就为大家分享一篇基于Vue 服务端Cookies删除的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-09-09
  • Vue props实现父组件给子组件传递数据的方式

    Vue props实现父组件给子组件传递数据的方式

    Vue中的配置项Props能让组件接收外部传递过来的数据,本文给大家介绍了Vue props实现父组件给子组件传递数据的几种方式,文中有详细的实现方式,具有一定的参考价值,需要的朋友可以参考下
    2023-10-10
  • Vue2 配置 Axios api 接口调用文件的方法

    Vue2 配置 Axios api 接口调用文件的方法

    本篇文章主要介绍了Vue2 配置 Axios api 接口调用文件的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-11-11
  • vue登录页实现使用cookie记住7天密码功能的方法

    vue登录页实现使用cookie记住7天密码功能的方法

    这篇文章主要介绍了vue登录页实现使用cookie记住7天密码功能的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • vue弹出框组件封装实例代码

    vue弹出框组件封装实例代码

    这篇文章主要介绍了vue弹出框组件封装,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-10-10
  • vue中的vue-print-nb如何实现页面打印

    vue中的vue-print-nb如何实现页面打印

    这篇文章主要介绍了vue中的vue-print-nb如何实现页面打印,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-04-04
  • VUEX如何使用

    VUEX如何使用

    Vuex 可以帮助我们管理共享状态,并附带了更多的概念和框架,本文主要介绍了VUEX如何使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-05-05

最新评论