我有一个简单的下拉组件,它可以让我隐藏和显示一些HTML内容,非常基础。
但是如果我在组件内部再次使用同样的组件,点击“测试2”的下拉切换将会折叠第一个下拉...
<dropdown>
<li slot-scope="{ display, toggleDisplay }" @click="toggleDisplay()" :class="{ active: display }">
Test
<ul>
<dropdown>
<li slot-scope="{ display, toggleDisplay }" @click="toggleDisplay()" :class="{ active: display }">
Test 2
</li>
</dropdown>
</ul>
</li>
</dropdown>
为什么会这样呢?此外,我应该能够在单击事件中只执行
display = !display
来切换它,而不是使用一个函数?该组件:
<script>
export default {
props: [ 'expanded' ],
data: function() {
return {
display: !!(this.expanded)
}
},
render() {
return this.$scopedSlots.default({
display: this.display,
toggleDisplay: this.toggleDisplay
})
},
methods: {
toggleDisplay() {
this.display = !this.display;
}
}
}
</script>