vue3对ref定义的数组不能直接赋值吗?

本来想用reactive来定义这个viewerImages,但发现viewerImages = [...spliceImages] 就失去响应式了,然后换成ref,用.value去赋值发现直接报错,不知道是哪里写的有问题?

image.png
image.png

------------------------------------------update-------------------------

image.png

阅读 23.7k
2 个回答

ts 数组类型不一致,可以定义接口来约束返回数据类型

interface Test{
  arr:string[]
}

const arr= reactive<Test>({arr:[]})

ref只能定义基本数据类型,例如string\number\boolean;
如果定义引用数据类型,请使用reactive定义。

你使用reactive的时候不要重新给他赋值。

你变量定义reactive,又给他重新赋值,重新赋值肯定就失去响应式了,这是js基础范畴。

你可以这样:

const data = reactive({
    viewerImages:[]
})

修改

data.viewerImages = ['...img'];

这样还能保留响应式

推荐问题