用vue3+element-plus做项目,明明后台给的数据已经能够在控制台console出来了,但是表格还是不刷新。 当代码改变热更新之后表格数据会出来,但是一刷新浏览器就又没了,后来终于解决了。 这是我原来的数据显示不出来时候的代码:
<script setup lang="ts">
// 错在这里,这里用reactive其实没有给tableData加上`响应监测`,监听不到tableData的变化
let tableData: Array<any> = reactive([])
const getUserInfo = () => {
  $http.get(`/api/users`, {}).then((res: any) => {
    //请求成功
    tableData = res.list
  });
};
onMounted(() => {
  getUserInfo()
})
</script>
<template>
  <div>
    <el-table ref="table1" :data="tableData">
      <el-table-column prop="name" label="姓名" width="180"/>
      <el-table-column prop="age" label="年龄"/>
      <el-table-column prop="createdAt" label="创建时间" width="280"/>
    </el-table>
  </div>
</template>下面是修改之后的代码,可以显示出表格数据了:
<script setup lang="ts">
// 这里给要监听的数据多套一层,就能监听到内部数据的变化
let tableData = reactive({
  data: []
})
const getUserInfo = () => {
  $http.get(`/api/users`, {}).then((res: any) => {
    //请求成功
    tableData.data = res.list
  });
};
onMounted(() => {
  getUserInfo()
})
</script>
<template>
  <div>
    /*这里用tableData.data就能获取到监听之后的数据了*/
    <el-table ref="table1" :data="tableData.data">
      <el-table-column prop="name" label="姓名" width="180"/>
      <el-table-column prop="age" label="年龄"/>
      <el-table-column prop="createdAt" label="创建时间" width="280"/>
    </el-table>
  </div>
</template>附上原作者解决的链接: https://blog.csdn.net/weixin_45755816/article/details/124202414

 
  
  
  
 
 
 