如何在Vue(vuetify)对象数组中插入值?v-data-table报错求助
解决
.push is not a function错误的方法 出现这个错误的核心原因是axiosThis.tableDataFinal[i]不是数组类型——push()是数组专属方法,只有数组才能调用它。你可以按以下步骤处理:
1. 先确认目标项的类型
在调用push前加一行打印代码,明确tableDataFinal[i]的实际类型:
console.log(axiosThis.tableDataFinal[i], Array.isArray(axiosThis.tableDataFinal[i]));
如果输出结果里第二个值是false,说明它是对象或其他非数组类型,这时候不能用push。
2. 根据需求选择对应方案
情况一:给对象添加新属性/合并对象
如果tableDataFinal[i]是对象,你要把printsumget[i]的数据合并进去:
- 单个属性赋值:
// 示例:添加名为printSum的属性 axiosThis.tableDataFinal[i].printSum = axiosThis.printsumget[i]; - 合并整个对象(若
printsumget[i]也是对象):axiosThis.tableDataFinal[i] = { ...axiosThis.tableDataFinal[i], ...axiosThis.printsumget[i] };
情况二:将目标项转为数组后添加元素
如果你确实需要tableDataFinal[i]是数组,先初始化它为数组再执行push:
// 先判断是否为数组,不是则初始化为空数组 if (!Array.isArray(axiosThis.tableDataFinal[i])) { axiosThis.tableDataFinal[i] = []; } axiosThis.tableDataFinal[i].push(axiosThis.printsumget[i]);
内容的提问来源于stack exchange,提问作者Magesh_Ramadass
相关产品推荐
相关产品推荐

