iis服务器助手广告
返回顶部
首页 > 资讯 > 精选 >Vue3中无法为el-tree-select设置反选问题怎么解决
  • 311
分享到

Vue3中无法为el-tree-select设置反选问题怎么解决

2023-07-06 00:07:06 311人浏览 独家记忆
摘要

本文小编为大家详细介绍“vue3中无法为el-tree-select设置反选问题怎么解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“Vue3中无法为el-tree-select设置反选问题怎么解决”文章能帮助大家解决疑惑,下面跟着小编的

本文小编为大家详细介绍“vue3中无法为el-tree-select设置反选问题怎么解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“Vue3中无法为el-tree-select设置反选问题怎么解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

  环境:Vue3.2、Element Plus

  问题:子组件 setting.vue => 弹窗组件 Dialog => 树选择组件el-tree-select ,无法设置默认选中项 default-checked-keys

  场景:在一个后台系统的列表页,选中一行数据,点击设置按钮,分配一些功能。这里的做法是把设置页封装在一个子组件里了,并且子组件里使用了Element Plus的Dialog组件

               然后Dialog里有个el-tree-select需要初始化赋值,因为在分配之前,可能之前分配过,需要设置反选

  最开始是直接写死,如下:

<template>  <el-tree-select

    :data="store().UserMenus"

:default-expanded-keys="['xxxxxxxx']"   /></template>

  然后发现不生效,周五的时候也能猜到原因,data绑定的pinia全局状态里的值,组件被实例化时这个值可能还未被加载,所以设置default-expanded-keys时它就找不到节点数据,等组件被创建后,data有值了,但是default-expanded-keys又不会再重新设置了,就造成组件有下拉数据,但是没有反选效果。

  起初以为是个简单问题,于是动了动脑子,既然和顺序有关,那自然考虑到生命周期了,于是在setting.vue里加上onMounted,并在这里重新赋值:

// script tsconst list = ref()const selectArr = ref<string[]>([])onMounted(() => {  list.value = store().UserMenus  selectArr.value = ['xxxxxxxx']}) // setting.vue<template>  <el-tree-select     :data="list"    :default-expanded-keys="selectArr"   /></template>

  data绑定list这个变量,default-expanded-keys绑定selectArr。嗯,以为可以了,结果还是没有反选成功。就.....离谱~

  正常来讲onMounted函数已经是组件创建完毕并创建Dom了,这个时候我应该可以设置list的值,再设置selectArr。但实际依然没有反选成功。

  这说明加载依然存在问题,抱着研究的心态,于是我又想起一种方法,我可以通过调用el-tree-select的api来通过方法设置它的默认值,也就是setCheckedKeys方法!

  通过模板引用,获取到el-tree-select,命名为tree,然后回到onMounted里打印:console.log(tree.value),好家伙,居然是个undefined,这说明在settting.vue的onMounted根本就无法设置选中的keys。然后诡异的是,在我反复修改代码的时候,由于热重载,Vue页面会随之更新,居然能反选上了!但是我一刷新,反选立刻失效。enmmmm ..... 基本能定位到问题的所在了,onMounted是无法获取到组件的,后面试了一下onUnmounted,这个可以,但是我这是初始化逻辑,不可能写在onUnmounted里。

  这里面还存在一个因素导致该问题的产生,就是Dialog默认是不显示的,通过v-model="dialogVisible"绑定的变量控制显示隐藏,初始化值为false也是导致失效的一个原因,如我初始时设置dialogVisible.value = true ,那么反选是OK的,只不过我依然不可能设置为true,哪有弹窗一开始就显示的。

  周五下午基本卡在这个地方了,经过周末的放空自我(峡谷Timi),周一早上上班的路上复盘了一下,考虑从Dialog本身寻找答案,嘿,果不其然,它的API里有个opened方法,Dialog 打开动画结束时的回调,我在这里做初始化,问题就解决了:

// Dialog@opened="opened"// script ts const opened = () => {     selectArr.value = ['xxxxxxxx']}

  之所以能找到这个思路,还有一个原因是也试了一下表单,之前表单的提交事件里一直可以获取到表单对象,然后试了一下onMounted里能不能获取到,结果也是类似的情况。放个按钮,在按钮的点击事件里是可以获取到组件的,因为等你可以点击按钮时,页面什么东西都加载完毕了,同样的,Dialog 打开动画结束时的回调里,页面肯定早加载完毕了,该有的值都有了,那么这个时候做初始化就不会存在找不到key的问题了。

// Dialog@opened="opened"// script ts const opened = () => {     selectArr.value = ['xxxxxxxx']}

读到这里,这篇“Vue3中无法为el-tree-select设置反选问题怎么解决”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网精选频道。

--结束END--

本文标题: Vue3中无法为el-tree-select设置反选问题怎么解决

本文链接: https://www.lsjlt.com/news/356630.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Vue3中无法为el-tree-select设置反选问题怎么解决
    本文小编为大家详细介绍“Vue3中无法为el-tree-select设置反选问题怎么解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“Vue3中无法为el-tree-select设置反选问题怎么解决”文章能帮助大家解决疑惑,下面跟着小编的...
    99+
    2023-07-06
  • Vue3中无法为el-tree-select设置反选问题解析
    好久没有写博客了,刚好上周遇到一个难缠问题,这里记录一下。   环境:Vue3.2、Element Plus   问题:子组件 setting.vue => 弹窗组件 Dial...
    99+
    2023-05-15
    Vue3 无法为el-tree-select Vue3 无法为el-tree-select设置反选 el-tree-select反选
  • vue的el-select绑定的值无法选中el-option问题及解决
    目录el-select绑定的值无法选中el-option问题vue el-select 2个下拉框联动时产生的无法选中值的bug问题描述el-select绑定的值无法选中el-opt...
    99+
    2024-04-02
  • Vue3中使用Element Plus时el-icon无法显示的问题解决
    目录问题描述解决方案总结问题描述 按照官方文档安装了icons $ npm install @element-plus/icons 然后在页面中使用 <template>...
    99+
    2024-04-02
  • 如何解决select选项过长无法显示设置overflow:hidden在IE9中不起作用的问题
    本篇内容介绍了“如何解决select选项过长无法显示设置overflow:hidden在IE9中不起作用的问题”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如...
    99+
    2024-04-02
  • android sdk无法勾选问题怎么解决
    如果Android SDK无法勾选,可能是以下几个原因导致的: SDK路径错误:请确认Android SDK的路径是否正确,并在...
    99+
    2023-10-27
    android
  • vue el-date-picker日期回显后无法改变问题怎么解决
    这篇文章主要介绍“vue el-date-picker日期回显后无法改变问题怎么解决”,在日常操作中,相信很多人在vue el-date-picker日期回显后无法改变问题怎么解决问题上存在疑惑,小编查阅了各式资料,整理...
    99+
    2023-07-06
  • el-input无法输入和表单验证失败的问题怎么解决
    今天小编给大家分享一下el-input无法输入和表单验证失败的问题怎么解决的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1....
    99+
    2023-07-05
  • win10设置共享无法被访问怎么解决
    要解决Windows 10设置共享无法被访问的问题,您可以尝试以下方法: 检查网络连接:确保所有设备都连接到同一个网络,并且网络...
    99+
    2023-10-26
    win10
  • win7系统怎么解决无法识别usb设备问题
    这篇文章主要介绍win7系统怎么解决无法识别usb设备问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!右单击“我的电脑”,选择“管理”,进入到“计算机管理”窗口。在“计算机管理”窗口,点击左边的“设备管理器”,然后...
    99+
    2023-06-28
  • 怎么解决oracle中ORA-27492无法运行问题
    这篇文章主要讲解了“怎么解决oracle中ORA-27492无法运行问题”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么解决oracle中ORA-2749...
    99+
    2024-04-02
  • win10出现该设备无法启动问题怎么解决
    出现"该设备无法启动"问题可能有多种原因,以下是一些可能的解决方法: 重启设备:尝试重启电脑,有时候只是临时的问题会被解决。 检查...
    99+
    2023-10-22
    win10
  • 如何解决img标签设置display:block属性时宽度无法设定为100%的问题
    小编给大家分享一下如何解决img标签设置display:block属性时宽度无法设定为100%的问题,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!   如下代码,img标签设置了disp...
    99+
    2024-04-02
  • 配置phpmyadmin出现无法载入mysql问题怎么解决
    本篇内容介绍了“配置phpmyadmin出现无法载入mysql问题怎么解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,...
    99+
    2024-04-02
  • 怎么解决BASIS中ERP系统无法登录问题
    这篇文章主要介绍“怎么解决BASIS中ERP系统无法登录问题”,在日常操作中,相信很多人在怎么解决BASIS中ERP系统无法登录问题问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解...
    99+
    2024-04-02
  • 怎么解决XP中启用Guest无法访问网络的问题
    本篇内容主要讲解“怎么解决XP中启用Guest无法访问网络的问题”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么解决XP中启用Guest无法访问网络的问题”吧!好多Windows XP系统启用...
    99+
    2023-06-14
  • 安装oracle11g碰到“无法访问临时位置”的问题怎么解决
    这篇文章主要讲解了“安装oracle11g碰到“无法访问临时位置”的问题怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“安装oracle11g碰到“无...
    99+
    2024-04-02
  • 怎么在Git中设置代理来解决网络问题
    本文小编为大家详细介绍“怎么在Git中设置代理来解决网络问题”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么在Git中设置代理来解决网络问题”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。Proxy的概念网络代...
    99+
    2023-07-05
  • 怎么解决微信小程序设置padding-right和margin-right无效问题
    这篇文章主要介绍“怎么解决微信小程序设置padding-right和margin-right无效问题”,在日常操作中,相信很多人在怎么解决微信小程序设置padding-right和margin-right无效问题问题上存在疑惑,小编查阅了各...
    99+
    2023-06-04
  • php上传中文文件无法上传问题怎么解决
    php上传中文文件无法上传的解决办法:1、通过“iconv("GBK", "UTF-8", $content);”方法将中文字符编码转换一下;2、将文件重命名即可。本教程操作环境:Windo...
    99+
    2023-05-14
    php 文件
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作