delStudentByIndex(index)方法是用来删除STU_ARR中的一行,子组件中调用这个方法,代码如下,但是总是报错(如标题)
const STU_ARR = [
{
id: 1,
name: "孙悟空",
age: 18,
gender: "男",
address: "花果山"
},
{
id: 2,
name: "时光",
age: 18,
gender: "男",
address: "方圆市"
}
]
const delStudentByIndex = (index) => {
STU_ARR.value.splice(index, 1)
console.log(STU_ARR)
}
是因为方法中的 STU_ARR.value为undefined,undefined找不到一个叫'splice'的属性。
解决方法:
因为我想把STU_ARR删除之后的效果呈现在网页中,也就是把STU_ARR作为响应式数据呈现,所以我把STU_ARR声明为ref对象即可,在脚本中访问ref对象的值的语法是对象名.value。
const STU_ARR = ref([
{
id: 1,
name: "孙悟空",
age: 18,
gender: "男",
address: "花果山"
},
{
id: 2,
name: "时光",
age: 18,
gender: "男",
address: "方圆市"
}
])
如果不是想把STU_ARR作为响应式对象,把方法中的value去掉即可,因为数组.splice()是合法的。