首页 > 其他分享 >Ant Design Vue Table 嵌套子表格的数据刷新方法

Ant Design Vue Table 嵌套子表格的数据刷新方法

时间:2023-09-12 12:11:42浏览次数:41  
标签:Vue 表格 unsionID expanded value Ant record Design expandedRowVisible

父子组件各自负责,在table中嵌套了子表格后,首次加载表格时,父组件会实例化子组件并传递参数,折叠后再次展开时,只会传递参数,子组件的数据刷新就属于子表格了。如

@@@code

<template #expandedRowRender="{ record }">

<originIndex

style="margin-left: 55px; margin-right: 50px; background-color: aliceblue"

:unsionID="record.unsionID"

/>

</template>

@@#

 

可以提供按钮,用户手动刷新子表格数据,或者刷新整个页面,如果希望每次展开都能刷新数据,可以使用以下两种方法:

  1. 使用v-if 强制子表格再次刷新,在折叠时隐藏,然后在展开时重绘整个表格

@@@code

#slot
					

<template #expandedRowRender="{ record }">
						

                      <originIndex

                          style="margin-left: 55px; margin-right: 50px; background-color: aliceblue"
						

                          :unsionID="record.unsionID"
						

                          v-if="expandedRowVisible"
								

                      />

                  </template>

# 函数
					

//展开处理,只展开一个
						

  const expandedRowKeysRef = ref()

//子表是否显示
						

  const expandedRowVisible = ref(false)

  const onExpand = (expanded, record) => {

      expandedRowVisible.value = false
						


					if (expanded) {

          expandedRowKeysRef.value = [record.id]

          nextTick(() => {

              expandedRowVisible.value = true
						

          })

      } else {

          expandedRowKeysRef.value = []

      }

  }

 

@@#

  1. 只刷新数据,利用每次展开都会重新传递参数的特点,向子组件传递参数,然后在子组件中根据参数来决定是否重新加载数据

@@@code

#slot
					

<template #expandedRowRender="{ record }">
						

                      <originIndex

                          style="margin-left: 55px; margin-right: 50px; background-color: aliceblue"
						

                          :unsionID="record.unsionID"
						

                          :expanded="expandedRowVisible"
						

                      />

                  </template>

#子组件
					

onUpdated(() => {


					if (props.expanded) table.value.refresh()

  })

# 函数
					

const expandedRowVisible = ref(false)

  const onExpand = (expanded, record) => {

      expandedRowVisible.value = false
						


					if (expanded) {

          expandedRowVisible.value = true
						

          expandedRowKeysRef.value = [record.id]

      } else {

          expandedRowKeysRef.value = []

      }

  }

@@#

标签:Vue,表格,unsionID,expanded,value,Ant,record,Design,expandedRowVisible
From: https://www.cnblogs.com/QinQouShui/p/17695836.html

相关文章

  • vue-i18n
    https://kazupon.github.io/vue-i18n/zh/introduction.html开始如果使用模块系统(例如通过vue-cli),则需要导入Vue和VueI18n,然后调用Vue.use(VueI18n)。格式化在某些情况下,你可能希望将翻译呈现为HTML信息而不是静态字符串。在你的网站上动态插入任意HTML可能......
  • Vue2——监听页面滚动实现菜单和页面对应
    前言如题,监听页面的滚动并激活相应的菜单,一个老项目的维护,后面反正要全部重构,这里就先实现功能就好了;内容元素内容主要是添加相应的id,生成目录后直接通过锚点来跳转监听滚动window.addEventListener('scroll',()=>{constsections=document.getElementsByCla......
  • Taro+vue3 关注抖音号
     Taro使用vue3或者react框架,data-aweme-id属性是不被解析到生成的页面代码中的,所以需要借助编译插件@tarojs/plugin-inject去注入标签属性;https://taro-docs.jd.com/docs/vue-overall#dataset业务页面:<buttonopen-type="openAwemeUserProfile":dataAwemeId="awemeId">关注......
  • Vue.js的index.html文件中引入JavaScript文件
    将js文件放在public文件夹下面在index.html文件下引入js文件在前面加<%=BASE_URL%>后面加路径,如果想将本地js文件打包之后也放在static/js文件夹下,需要在public文件夹下创建一个和打包之后文件放的位置一样的文件夹<scriptsrc="<%=BASE_URL%>./static/js/js文件名"></sc......
  • react18-webchat网页聊天实例|React Hooks+Arco Design仿微信桌面端
    React18Hooks+Arco-Design+Zustand仿微信客户端聊天ReactWebchat。react18-webchat基于react18+vite4.x+arco-design+zustand等技术开发的一款仿制微信网页版聊天实战项目。实现发送带有emoj消息文本、图片/视频预览、红包/朋友圈、局部模块化刷新/美化滚动条等功能。使用技术......
  • 关于在vue里面使用导航栏需要注意的事项
    1、右侧内容的显现右侧内容由el-main标签包围,需要在里面填上:内容才能成功显现!2、路由所在不仅仅要在APP.vue里面放路由:还要在Index.vue里面放置:初学小白找这个错误找了好久!......
  • vue--day83---路由的params参数
    1.配置路由,声明接收params参数   ```js  {  path:'/home',  component:Home,  children:[  {  path:'news',  component:News  },  {  component:Message,  children:[  {  name:'xian......
  • vue--day82--命名路由
    ###5.命名路由 1.作用:可以简化路由的跳转。 2.如何使用   1.给路由命名:    ```js   {   path:'/demo',   component:Demo,   children:[   {   path:'test',   component:Test,   ......
  • 自写vue导航栏--动态读取js的数据
    App.vue<template><el-containerclass="layout-container-demo"style="height:500px"><el-asidewidth="200px"><el-scrollbar><!--<el-menu:default-openeds="['1'......
  • SSM SpringBoot vue快递柜管理系统
    SSMSpringBootvue快递柜管理系统系统功能登录注册个人中心快递员管理用户信息管理 用户寄件管理配送信息管理寄存信息管理开发环境和技术开发语言:Java使用框架:SSM(Spring+SpringMVC+Mybaits)或SpringBoot前端:vue数据库:Mysql架构:B/S源码类型......