请问为什么我selectedItems里的selection会报错?
"stockList" style="height:430px;" border>
<el-table-column type="selection" :reserve-selection="true">el-table-column>
<el-table-column prop="itemname" label="物资名称">el-table-column>
<el-table-column prop="numbers" label="物资数量">el-table-column>
<el-table-column prop="unit" label="物资单位">el-table-column>
selectedItems() {
return this.stockList.filter(item => this.$refs.table.selection.includes(item))
.map(item => ({ name: item.itemname, unit: item.unit }));
}
setUserInfo() {
// 填入用户名
this.addForm.person = this.showUsername;
this.addForm.itemtype = this.selectedItems[0].name;
this.addForm.unit = this.selectedItems[0].unit;
},
该回答引用GPT:
可能是因为你在selectedItems()方法中使用了this.$refs.table.selection,但是你没有在el-table标签中定义ref属性,所以报错了。
解决方法:
在el-table标签中添加ref属性,如:
<el-table ref="table" :data="stockList" style="height:430px;" border>
<el-table-column type="selection" :reserve-selection="true"></el-table-column>
<el-table-column prop="itemname" label="物资名称"></el-table-column>
<el-table-column prop="numbers" label="物资数量"></el-table-column>
<el-table-column prop="unit" label="物资单位"></el-table-column>
</el-table>
如还有疑问,可以私信帮助解决。
参考GPT和自己的思路:从你的代码中看出,你将selectedItems写成了一个函数而不是一个数组,如果你想要调用它,你需要加上括号,即this.selectedItems()。另外,请确保在setUserInfo之前,已经选中了至少一个项,否则selectedItems数组为空并且会导致无法读取数组的某个元素。