Javascript Vue Js未使用更新的数组首次更新DOM

Javascript Vue Js未使用更新的数组首次更新DOM,javascript,jquery,laravel-5,vue.js,vuejs2,Javascript,Jquery,Laravel 5,Vue.js,Vuejs2,我想在上传图像时进行图像预览 我能够获得数组中图像的路径,但在我第一次上传图像时,数组不会更新 检查vue devtools时,它会更新阵列,但图像不会预览 当我上传图像时,数组应该立即更新。但它不会更新 如果使用vue devtools查看阵列,则阵列不会更新 这是我的密码: html <div class='row'> <div v-for="item in itemsImages">{{item}}</div> </div> 以下是一

我想在上传图像时进行图像预览

我能够获得数组中图像的路径,但在我第一次上传图像时,数组不会更新

检查vue devtools时,它会更新阵列,但图像不会预览

当我上传图像时,数组应该立即更新。但它不会更新

如果使用vue devtools查看阵列,则阵列不会更新

这是我的密码:

html

<div class='row'>
   <div v-for="item in itemsImages">{{item}}</div>
</div>
以下是一个屏幕截图:

这通常是一个反应性问题,因为您的阵列确实会更新,但Vue不会收到此通知,因此不会重新渲染

如果阵列发生变化,您似乎希望得到通知,并且它在此处发生了变化:

vm.itemsImages[x] = event.target.result;
此时您正在设置属性
x
,但Vue将永远不会注意到这一点,因为Vue不会为初始化后添加的属性创建getter和setter

如果希望Vue能够响应此阵列上的更改,并且需要动态设置属性,则需要:

所以这会变成这样:

this.$set(vm.itemsImages,x,event.target.result)


这可能会解决您的问题。如果它不起作用,请告诉我。

这通常是一个反应性问题,因为您的阵列确实会更新,但Vue没有收到此通知,因此不会重新渲染

如果阵列发生变化,您似乎希望得到通知,并且它在此处发生了变化:

vm.itemsImages[x] = event.target.result;
此时您正在设置属性
x
,但Vue将永远不会注意到这一点,因为Vue不会为初始化后添加的属性创建getter和setter

如果希望Vue能够响应此阵列上的更改,并且需要动态设置属性,则需要:

所以这会变成这样:

this.$set(vm.itemsImages,x,event.target.result)

这可能会解决您的问题。如果不起作用,请告诉我。

的可能副本