背景说明:
子组件函数触发,修改了父组件的list值,但是页面数据不更新
子组件:
// 选中数据的时候触发
<script lang="ts" setup>
import { defineEmits } from 'vue';
// 定义要传递给父组件的事件
const emits = defineEmits(['message']);
//子传父
function handleSelectRowChange(e) {
emits('message', e.selectedRows); // 触发名为 'message' 的事件,并传递参数
}
</script>
父组件:
html代码
<JVxeTable ref="tableRef"
:columns= "columns"
:dataSource="tblist"
@selectRowChange="handleSelectRowChange"
>
</JVxeTable>
js代码:
const tblist = ref<Recordable[]>([]);
const tableRef = ref<JVxeTableInstance>();
//更新list
function updatemt(e){
for (let i = 0; i < e.length; i++) {
tblist.value[i].id = e[i].id;
tblist.value[i].name = e[i].name;
}
const xTable = tableRef.value!.getXTable();//关键代码 如果不更新 重新加载表格即可
xTable.loadData(tblist.value)
}