【发布时间】:2019-03-27 16:11:33
【问题描述】:
我有四个按钮和相应的四个分区。单击第一个按钮时,我想显示第一个 div,单击第二个按钮时,我想显示第二个 div,依此类推。
按钮单击事件调用具有分区编号(0 到 3)的方法@click="showDiv(0)" 用于第一个按钮,@click="showDiv(1)" 用于第二个按钮。这是我的 showDiv() 方法
showDiv: 函数(divNumber)
showDiv: function(divNumber)
{
this.showDetailsDiv.forEach(function(item, index, array) {
array[index]=null;
});
this.showDetailsDiv[divNumber] = true;
console.log(this.ShowDetailsDiv);
}
showDetailsDiv prop 的初始值为空值数组
showDetailsDiv: [
null,
null,
null,
null
],
在模板中,我试图通过 v-show 来控制分区
<div v-show="showDetailsDiv[0]">
First div
</div>
<div v-show="showDetailsDiv[1]">
Second div
</div>
<div v-show="showDetailsDiv[2]">
Third div
</div>
当我点击按钮时,我看到 showDetailsDiv 的对应元素正在变为 true,但是,对应的分区不显示。我的逻辑有什么问题吗?
当我尝试使用以下代码使用直接属性(例如 showDiv0、showDiv1、showDiv2 和 showDiv3)来控制除法的显示时,它可以工作。
showDiv: function(divNumber)
{
this.showDetailsDiv.forEach(function(item, index, array) {
array[index]=null;
});
this.showDetailsDiv[divNumber] = true;
console.log(this.showDetailsDiv);
this.showDiv0= false;
this.showDiv1= false;
this.showDiv2= false;
this.showDiv3= false;
let elementID = 'showDiv' + divNumber;
this[elementID] = true;
}
<div v-show="showDiv0">
First div
</div>
<div v-show="showDiv1">
Second div
</div>
<div v-show="showDiv2">
Third div
</div>
有什么建议吗?
【问题讨论】:
-
您希望同时只有一个元素可见吗?
-
是的,一次只能看到一个 div
标签: vue.js