vue中解决v-show中的值改变,但视图不刷新问题

问题:之前使用全局变量和v-show来解决div隐藏问题,类似这样

<el-button  type="primary" @click="showAdvanceSearchView=!showAdvanceSearchView">

  <div v-show="showAdvanceSearchView" >
  	XXXXX
  </div>
  
  data中定义:
  return{
   showAdvanceSearchView:false
  }

但使用数组来控制是否隐藏后,v-show似乎不起作用了,我使用了table来遍历列表中的数据,scViewStatus是我定义的用来显示行中某一项的标记数组,数组里面是boolean类型,数组的下标对应行的下标,想通过在某一行点击div,改变数组值来隐藏某项数据。行中的div如下

<div @click="showHiddenView(scope.$index)">
    <span>{{scope.row.stem}}</span>
</div>

这里我点击div后,传递到表格中行的下标,起初的方法:

showHiddenView(index){
    var status=!this.scViewStatus[index]
    this.scViewStatus[index]=status;
}

但结果是数组中的值改变了,div并没有隐藏或显示。

最后解决办法:使用vue中的$set来设置值

showHiddenView(index){
    var status=!this.scViewStatus[index]
    this.$set(this.scViewStatus,index,status);
//第一个参数为数组,第二个参数为数组下标,第三个参数为设置的值,
},
Logo

前往低代码交流专区

更多推荐