昨天在写项目时,父组件中包含很多相同类似的表格 我就给拆分出去了,此时我就需要将在父组件中获取的表格列表数据传递给子组件。 子组件(表格)涉及了删除按钮,新增按钮,此时就会对父组件传递过来的数据进行修改,但是我直接对props接受的数据进行修改就出了错误提示!
之所以报错是因为vue是单向数据流,想要直接对父组件传递过来的值进行修改是不被允许的。
父组件
服务接收参数:
+ 新建参数
服务返回参数:
+ 新建参数
子组件
解决办法
在子组件中声明一个data,然后将传递过来的值赋值给data,此时就可以进行修改操作
const tableDataList = ref([]); //用来接收传递过来的数据列表值,如果想要进行删除等操作,可间接修改props值
onMounted(() => {
tableDataList.value = props.tableData; //在此生命周期钩子中将传过来的值进行赋值
context.emit("update:tableData", tableDataList); //该操作实现的是当数据一旦发生变化 就会将最新数据传递个父组件
});
子组件如果这么写,
context.emit("update:tableData", tableDataList);
父组件传递值对应的写法