当前位置: 首页 > 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.xdnf.cn/news/509995.html

相关文章:

  • 【Linux高级全栈开发】2.1.3 http服务器的实现
  • AI:NLP 情感分析
  • Filament引擎(一) ——渲染框架设计
  • 中级网络工程师知识点7
  • 课外活动:需了解的海象运算符(:=)
  • HTTPS的工作过程
  • 低延迟与高性能的技术优势解析:SmartPlayer VS VLC Media Player
  • 贪心、分治和回溯算法
  • 当AI自我纠错:一个简单的“Wait“提示如何让模型思考更深、推理更强
  • MySQL(21)如何查询表中的所有数据?
  • ffmpeg -vf subtitles添加字幕绝对路径问题的解决方法
  • 吴恩达机器学习(1)——机器学习算法分类
  • NetApp FAS存储系统的加密Encrytpion解决方案介绍
  • 西门子1200/1500博图(TIA Portal)寻址方式详解
  • 从零开始实现大语言模型(十五):并行计算与分布式机器学习
  • 【深度学习基础】从感知机到多层神经网络:模型原理、结构与计算过程全解析
  • java中sleep()和wait()暂停线程的区别
  • 算法题(149):矩阵消除游戏
  • 计算机系统---TPU(张量处理单元)
  • k6学习k6学习k6学习k6学习k6学习k6学习
  • 一文读懂软链接硬链接
  • 5.18 打卡
  • npm与pnpm--为什么推荐pnpm
  • 【Vue】路由1——路由的引入 以及 路由的传参
  • 相机基础常识
  • PrimeVul论文解读-如何构建高质量漏洞标签与数据集
  • HarmonyOS 与 OpenHarmony:同根而不同途
  • 低代码AI开发新趋势:Dify平台化开发实战
  • 张 心理问题的分类以及解决流程
  • @JsonProperty和@JSONField 使用