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;
            });
相关推荐
冰珊孤雪18 小时前
Android Studio Panda革命性升级:内存诊断、构建标准化与AI调试全解析
android·前端
用户8061381665918 小时前
避免滥用“事件总线”
前端
Xiaoke18 小时前
我终于搞懂了 Event Loop(宏任务 / 微任务)
前端
@大迁世界18 小时前
13.在 React 中应怎样正确更新 state?
前端·javascript·react.js·前端框架·ecmascript
苏琢玉18 小时前
Go + Vue 打包成一个单二进制的后台系统,我做了个后台脚手架
vue.js·golang
终端鹿19 小时前
Suspense 异步组件与懒加载实战
前端·vue.js
清风细雨_林木木19 小时前
CSS 报错:css-semicolonexpected 解决方案
前端·css
Jinuss19 小时前
源码分析之React中useRef解析
前端·javascript·react.js
cch891819 小时前
css 样式说明,在页面布局开发中,样式表用于控制组件的尺寸、间距、边框及背景等视觉表现
前端·javascript·html
卡梅德生物小喇叭19 小时前
卡梅德生物技术快报|基于 CHO 细胞的百日咳毒素中和抗体检测方法构建与验证
人工智能·经验分享·elementui·微信公众平台·facebook