Javascript 动态生成的对象密钥未更新

Javascript 动态生成的对象密钥未更新,javascript,vue.js,vuejs2,vue-component,vuetify.js,Javascript,Vue.js,Vuejs2,Vue Component,Vuetify.js,我正在使用Vueitfy的v-chip组件在交叉图标单击时隐藏/显示芯片。文档说明添加布尔值v-if data(){ 返回{ 芯片:{}, 测试:[], 选项卡:[“参数”、“开始时间”、“交通来源”], 禁用按钮:true, }; }, 这里的chips对象是我需要的动态对象。为此,我在chips对象中推送了动态生成的名称: mounted(){ this.tests=this.$store.state.run.runScheduled; //将动态芯片添加到芯片阵列中,用于隐藏/显示单个芯

我正在使用Vueitfyv-chip组件在交叉图标单击时隐藏/显示芯片。文档说明添加布尔值v-if

data(){
返回{
芯片:{},
测试:[],
选项卡:[“参数”、“开始时间”、“交通来源”],
禁用按钮:true,
};
},
这里的chips对象是我需要的动态对象。为此,我在chips对象中推送了动态生成的名称:

mounted(){
this.tests=this.$store.state.run.runScheduled;
//将动态芯片添加到芯片阵列中,用于隐藏/显示单个芯片
for(让我们在此.tests中进行测试){
让chipName=“Chip”+测试;
this.chips[chipName]=true;
}
}
对HTML标记执行相同的操作


{{test.name}
removetest()
是我需要将检查设置为false的地方,以便对DOM隐藏它,但由于某些原因代码无法工作

方法:{
移除测试(testID){
设chipName=`Chip${testID}`;
console.log(芯片名);
this.chips.chipName=false
},
}
如果我尝试打印chips对象,它将显示预期生成的键/值对

{
“Chip0”:对,
“Chip1”:没错,
“Chip2”:没错,
“Chip3”:正确
}
removest()
方法中的代码应将值更改为false,但它不是,是否有帮助?

使用
Vue.set
(或组件中的
this.$set
)在运行时向数据对象添加属性:

for(让我们在此.tests中进行测试){
让chipName=“Chip”+测试;
this.$set(this.chips,chipName,true);
}
根据Vue的反应性:

Vue无法检测到属性的添加或删除。由于Vue在实例初始化期间执行getter/setter转换过程,因此数据对象中必须存在一个属性,以便Vue对其进行转换并使其响应。。。但是,可以使用Vue.set(object,propertyName,value)方法向嵌套对象添加被动属性


还有一个问题,如果我可以问v-if=“
chips.Chip${test.id}
”DOM中的这个条件仍然不起作用,你知道对象本身正在呈现这个conidtion现在不起作用的更改的原因是什么吗请尝试
v-if=“chips[`Chip${test.id}`]”