Vue.js 为什么一个对象中的对象数组上的v-for不';即使使用:key也不能更新?

Vue.js 为什么一个对象中的对象数组上的v-for不';即使使用:key也不能更新?,vue.js,vuejs2,vue-component,Vue.js,Vuejs2,Vue Component,我正在遍历对象中的数组。当我更新数组中的对象时,数据会更新,但是UI不会更新 数据如下所示 projectConfig = { files: [ lang: "ar-eg", paths: ["/Users/omarabdelhady/Desktop/Others/test/i18n/ar-eg.json"] ] } projectConfig = { files: [{ lang: "ar-eg", paths: ["/Use

我正在遍历对象中的数组。当我更新数组中的对象时,数据会更新,但是UI不会更新

数据如下所示

projectConfig = {
   files: [
      lang: "ar-eg",
      paths: ["/Users/omarabdelhady/Desktop/Others/test/i18n/ar-eg.json"]
   ]
}
projectConfig = {
   files: [{
      lang: "ar-eg",
      paths: ["/Users/omarabdelhady/Desktop/Others/test/i18n/ar-eg.json"]
   }]
}
HTML

我使用v-for的:键来检测更改,但不起作用 我试过了。$forceUpdate(),有效,但我认为这不是最好的解决方案

--更新 实际上数据是这样的

projectConfig = {
   files: [
      lang: "ar-eg",
      paths: ["/Users/omarabdelhady/Desktop/Others/test/i18n/ar-eg.json"]
   ]
}
projectConfig = {
   files: [{
      lang: "ar-eg",
      paths: ["/Users/omarabdelhady/Desktop/Others/test/i18n/ar-eg.json"]
   }]
}

另外,我使用的是typescript我猜问题出在组件初始化时没有设置反应性。数据最初不可用,或者嵌套对象和数组太多

正在查看此嵌套对象…
projectConfig.files[i].path[j]

这是对象中的数组中的字符串


如果组件启动时阵列为空,则不添加反应性。您可以尝试使用
slice
$set
触发反应。

我看到的唯一问题是您忘记将元素作为对象封装在
文件中。我尝试了你的代码(通过修复),效果很好。检查:你能指出这个变化吗,我不知道你做了什么?我只是用对象表示法简单地封装了你的文件:
文件:[{lang:“ar-eg”,路径:[“/Users/omarabdelhady/Desktop/Others/test/i18n/ar-eg.json”]
我的数据看起来已经是这样了,我会更新它,但仍然不起作用,我还要说明我使用的是typescriptI,我同意@Ayrton。代码也适用于我。也许你应该共享一个JSFIDLE,这样我们就可以检查你的代码出了什么问题。是的,这是正确的,数据最初不在那里,不知道数据必须初始化,所以我必须在所有级别使用初始值构造数据,以便它工作,构造函数(){this.projectName='';this.projectDir='';this.files=[{lang:'',路径:[]}}这就是我所做的,你可以更新你的答案,而不是把它放在问题本身中