我有Vue.ja应用程序,并且尝试更改对象内的值。基本上,当发生@ change =“ onfilechangev”时,我想更新名称:''value 有什么方法可以执行此操作,或者因为它是我将无法更新的对象?
app.js
var vm = new Vue({
el: '#regapp',
data: {
team:[
{
img: '',
name: '',
}
],
},
methods: {
onfilechangev(event) {
let uploads = event.target.files[0]
let pic = uploads.name;
Vue.set(vm.team.name, 'pic', )
},
感谢您的回答。我已经尝试过但没有运气。我已经根据自己的情况修改了下面的codeandbox。 https://codesandbox.io/s/736nqq6070 很少解释:我已经动态添加了带有可选个人资料图片上传的字段。因此,当我添加了3个团队成员时,我想将其保存在后端带有Laravel的数据库中。如果我选择图像,则将该文件推送到selectedFile数组(它可以工作),但是由于配置文件图片仅是可选的,而不是必需的,因此我需要知道teamemeber是否具有图像。这就是为什么我尝试设置隐藏的输入字段文件名的原因。所以在后端,我可以检查selectedField数组是否包含文件名(如果是),那么我可以将图像保存到成员。
答案 0 :(得分:1)
由于您只修改了数组成员的现有属性,因此甚至不需要使用Vue.set
。
一个简单的this.team[0].name = pic
就足够了,请检查此沙箱:
https://codesandbox.io/s/l2ky6rkx0l
关于反应性的JS限制仅适用于重新分配数组元素或添加新的根属性,您都不是这种情况。
答案 1 :(得分:0)
到目前为止,它改进了很多,现在唯一的,我认为最后一个问题是如何将事件和索引传递给onfilechangev();。 这是codeandbox:https://codesandbox.io/s/736nqq6070