Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用方法更改数据后的Vue v-show更新_Javascript_Vue.js_Vuejs2 - Fatal编程技术网

Javascript 使用方法更改数据后的Vue v-show更新

Javascript 使用方法更改数据后的Vue v-show更新,javascript,vue.js,vuejs2,Javascript,Vue.js,Vuejs2,我在这个对象数组中迭代,每个对象中都有一个属性-关键字。已编辑的,它的值为-false all循环如下所示: <tr v-for="(keyword, index) in keywords"> <td>{{keyword.tag_name}}</td> <td @click="edit_keyword(index)"> <el-input-number v-show="keyword.edited" :step

我在这个对象数组中迭代,每个对象中都有一个属性-
关键字。已编辑的
,它的值为-
false
all循环如下所示:

<tr v-for="(keyword, index) in keywords">
    <td>{{keyword.tag_name}}</td>
    <td @click="edit_keyword(index)">
        <el-input-number v-show="keyword.edited" :step="step" size="small" v-model="keyword.max_bid"></el-input-number>
    </td>
</tr>
但是DOM不会更新,或者换句话说,相关的关键字不会像我预期的那样显示。
你知道我怎样才能做到这一点吗?试图用computed属性实现相同的想法,但仍然不起作用…

您正在更改的属性不是反应性的,因此vue不是它更改的。如果更新对象的属性,则需要使用$set方法告诉Vue:

edit_关键字(索引){
this.$set(this.keyswords[index]、'edited'、!this.keys[index].edited)
}

我不能很好地理解你的想法。DOM应该自动更新。你能提供一个提琴吗?试着记录你的索引,并做一些错误控制,也许问题就在这里,所以基本上
edit_keyword(index){
    this.keywords[index].edited = !this.keywords[index].edited
    return  this.keywords[index].edited
}