当前位置: 首页 > article >正文

Vue 3 动态 ref 的使用方式(表格)

一、问题描述

先给大家简单介绍一下问题背景。我正在开发的项目中,有一个表格组件,其中一列是分镜描述,需要支持视频上传功能。用户可以为每一行的分镜描述上传对应的视频示例。然而,在实现过程中,出现了一个严重的问题:当表格有多行数据时,点击某一行的本地上传按钮,选择文件后,数据却总是跑到最后一行。这显然不符合预期,严重影响了用户体验和功能的正确性。

二、解决

1、创建了一个inputRefs对象来存储input元素的引用: 

const shotVideInputRefs = ref<Record<string, HTMLInputElement>>({});

2、在模板中,通过以下方式绑定ref

<input :key="row.id" :ref="(el) => (shotVideInputRefs[row.id] = el as HTMLInputElement)" type="file" @change="handleShotFileChange(row, $event)" />

3、触发文件上传对话框的方法:根据当前行的id来获取对应的input引用并触发点击事件:

const triggerShotVideoInput = (rowId) => {if (shotVideInputRefs.value[rowId]) {shotVideInputRefs.value[rowId].click();}};

 

http://www.lryc.cn/news/2379387.html

相关文章:

  • Bash fork 炸弹 —— :(){ :|: };:
  • 互联网大厂Java面试:从Spring Boot到微服务架构的技术深挖
  • IT审计之外包
  • 精益数据分析(66/126):技术驱动的大规模用户调研——从工具组合到高效验证
  • 通俗解释Transformer在处理序列问题高效的原因(个人理解)
  • 第12章 Java多线程机制
  • 区间带边权并查集,XY4060泄露的测试点
  • 【数据结构】1-4算法的空间复杂度
  • nt!ExRemoveHeadNBQueue 函数分析
  • OpenAI推出Codex — ChatGPT内置的软件工程Agents
  • AI日报 · 2025年5月15日|GPT-4.1 登陆 ChatGPT
  • W5500使用ioLibrary库创建TCP客户端
  • SQL练习(12/81)
  • 组态王|如何创建组态王工程?
  • mysql数据库-3(备份和恢复)
  • 估分啦~全国青少年信息素养大赛部分赛项已考完~图形化/算法创意实践
  • 【Linux服务器】-虚拟机安装(CentOS7.9)
  • 鸿蒙OSUniApp 制作简洁高效的标签云组件#三方框架 #Uniapp
  • 2025年渗透测试面试题总结-百度面经(题目+回答)
  • java集合相关的api-总结
  • 深入解析JVM字节码解释器执行流程(OpenJDK 17源码实现)
  • 分别用 语言模型雏形N-Gram 和 文本表示BoW词袋 来实现文本情绪分类
  • C#.NET 或 VB.NET Windows 窗体中的 DataGridView – 技巧、窍门和常见问题
  • PyTorch音频处理技术及应用研究:从特征提取到相似度分析
  • SHAP分析图的含义
  • VSTO(C#)Excel开发进阶2:操作图片 改变大小 滚动到可视区
  • 多用途商务,电子产品发布,科技架构,智能手表交互等发布PPT模版20套一组分享
  • Java正则表达式:从基础到高级应用全解析
  • WindowsPE文件格式入门11.资源表
  • C语言标准I/O与Linux系统调用的文件操作