el-tree动态设置是否全部展开属性,值已经改变,但是没有展开或折叠

项目场景:使用el-tree组件,搜索后动态设置数据全部展示


问题描述

el-tree动态设置是否全部展开属性,值已经改变,但是没有展开

c 复制代码
   <el-select
              v-model="TableName"
              placeholder="请选择"
            >
              <el-input placeholder="请输入关键词" v-model="inputValue" maxlength="40">
                <i slot="suffix" class="el-input__icon el-icon-search" @click="getTreeData"></i>
              </el-input>
              <el-option :value="TableName" style="height: 200px; overflow-y: auto">
                <el-tree
                  v-loading="loading"
                  :data="treeData"
                  :index="index"
                  :props="defaultProps"
                  :default-expand-all="expandAll"
                  node-key="puid"
                  highlight-current
                  @node-click="
                    (data, node, item) =>
                      handleNodeClick(data, node, item, index, 'tableName')
                  "
                />
              </el-option>
            </el-select>

expandAll动态设置值为true false,值已经改变,树节点却没有展开

原因分析:

default-expand-all属性在第一次渲染时才生效,动态改变后,树早已渲染出来,所以需要等数据出来后重新渲染


解决方案:

css 复制代码
加个  v-if="refreshTree"
 <el-tree ref="tree"
                  v-loading="loading"
                  :data="treeData"
                  :index="index"
                  :props="defaultProps"
                  :default-expand-all="expandAll"
                  node-key="puid"
                  highlight-current
                  v-if="refreshTree"
                  @node-click="
                    (data, node, item) =>
                      handleNodeClick(data, node, item, index, 'tableName')
                  "
                />


父组件请求接口后处理
                 this.$refs.tree.refreshTree = false;
            this.$refs.tree.expandAll = inputValue ? true : false;//这里我是根据输入框是否有值判断是否是搜索后,大家可以酌情处理
            this.$refs.tree.$nextTick(() => {
              this.$refs.tree.refreshTree = true;
            });
相关推荐
笨笨狗吞噬者25 分钟前
VS Code 内置浏览器打开网页
前端
SamChan9025 分钟前
WebSocket实现PDF翻译进度实时推送:Go后端+React前端的完整方案
前端·websocket·pdf·c#·react·机器翻译
甲维斯38 分钟前
DeepSeekFlash前端依旧拉垮,而且变慢了很多!
前端·人工智能
奈斯先生Vector1 小时前
大模型 Agentic Workflow 架构解构:异构 API 调度与 Token 路由的多模态系统设计
开发语言·前端·架构·prompt·aigc·音视频
海带紫菜菠萝汤1 小时前
FFmpeg.wasm 实践:在浏览器中运行 FFmpeg 的能力边界与性能瓶颈
前端·javascript·ffmpeg·音视频·wasm
名字还没想好☜1 小时前
React 受控输入框光标跳到末尾:格式化输入时的 selection 丢失 bug 与修复
前端·javascript·react.js·bug·react·next.js
Access开发易登软件1 小时前
Access 怎么做前后端分离?用 Web API 读写 SQL Server
前端·数据库·人工智能·microsoft·excel·access
10share1 小时前
React 新一代样式隔离方案 —— 编译时、零运行时、原生写法
前端·react.js
Revolution611 小时前
Node.js 是什么:前端项目里哪些事情由它完成
前端·面试·node.js
我要两颗404西柚2 小时前
Stage three:VUE工程化与实战工具
前端·javascript·vue.js