<template>
<el-table
v-loading="loading"
element-loading-text="Loading..."
>
</el-table>
</template>
<script lang="ts" setup>
import { ref } from 'vue'
const loading = ref(true)
</script>
查看官方文档,要想设置加载时显示的文字,需要修改 element-loading-text 的属性,可是当使用响应式数据进行绑定修改该值时,是没有生效的。
官方仓库的一个issure说这种写法将会被废弃,推荐使用options的写法。
<template>
<el-table
v-loading="{visible: loading, text:loadingText}"
element-loading-text="Loading..."
>
</el-table>
</template>
<script lang="ts" setup>
import { ref } from 'vue'
const loading = ref(true)
const loadingText = ref('') // 自行写逻辑修改该值
</script>
上面方法已经解决了text无法更新的问题, 但是!!!
又出现了两个新的问题,使用 options 后,
1、loading加载层无法关闭
2、loadingText的初始值为空时,loadingText更新后,页面还是显示为空
最终解决办法
- loadingText初始值不要为空,可以使用空格代替:const loadingText = ref(’ ')
- 代码修改
v-loading="{loading && { text:loadingText}"