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

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.dtcms.com/a/198829.html

相关文章:

  • 字节跳动开源DeerFlow,解锁AI研究新姿势
  • 采用DHCP动态分配IP地址,如果某主机开机后没有得到DHCP服务器的响应。则该主机获取的IP地址为?
  • 组态王|如何创建组态王工程?
  • 零基础搭建!基于PP-ShiTuV2的轻量级图像识别系统(Docker+API部署指南)
  • printf在c语言中代表什么(非常详细)
  • 6.2.2邻接表法-图的存储
  • PWM讲解+STM32任意频率、占空比、脉宽生成函数介绍
  • boost之signal2
  • 代码上传gitte仓库
  • 本地无损放大软件-realesrgan-gui
  • 人工智能100问☞第26问:什么是贝叶斯网络?
  • Python 条件语句详解
  • Postgres mcp server
  • Text models —— BERT,RoBERTa, BERTweet,LLama
  • java中的Servlet1.x详解
  • Python训练第二十九天
  • DeepSeek系列核心技术与贡献总结
  • PointNet++:点云处理的升级版算法
  • 最长递增子序列
  • C2S-Scale方法解读
  • 信奥赛-刷题笔记-栈篇-T2-P3056括号调整问题0518
  • LeetCode算 法 实 战 - - - 双 指 针 与 移 除 元 素、快 慢 指 针 与 删 除 有 序 数 组 中 的 重 复 项
  • LeetCode 394. 字符串解码详解:Java栈实现与逐行解析
  • 【甲方安全建设】Python 项目静态扫描工具 Bandit 安装使用详细教程
  • 【QGIS二次开发】空间分析-10
  • 力扣1991:找到数组的中间位置(前缀和)
  • SOC-ESP32S3部分:快速烧录上手使用
  • OpenCL C C++核心对象与属性对比
  • BiRefNet V3版 - 一个高精度的高分辨率图像抠图模型,AI“抠图之王” 支持50系显卡 本地一键整合包下载
  • 【第三十六周】LoRA 微调方法