采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师说的多个selection组件,在单个的时候会因为isDrop属性始终为true(点击的时候触发eventBus,之后在this.isDrop=!this.isDrop),关不掉,我自己想了个办法是通过父组件给selection传值来判断是否需要触发eventBus,但是感觉有点麻烦特别是selection有很多的话,每个都得传这个组件 有其他什么办法么?
顺序调整一下可以实现,先触发事件,再更新状态:
mounted () {
eventBus.$on(
'reset-status'
, () => {
this
.isDrop =
false
})
},
methods: {
toggleDrop (event) {
event.stopPropagation()
// 这里的顺序
if
(!
.isDrop) {
eventBus.$emit(
)
}
.isDrop = !
.isDrop
chooseSelection (index) {
.nowIndex = index
.$emit(
'on-change'
,
.selections[
.nowIndex])
你试一下?
我印象里通过阻止事件冒泡就能解决这个问题,这是我当初写的代码:
//阻止事件冒泡
// this.isDrop = false
我是按老师的方法来用的,但是行不通。每次点击的时候eventBus.$emit('reset-status')会把isDrop置为false,然后this.isDrop = !this.isDrop会把isDrop置为true,所以点击之后所有的结果都是true
你看下我更新的答案,改一下顺序应该可以
登录后可查看更多问答,登录/注册
快速入门Vue2.0,组件化开发一个数字产品电商平台
2.0k 1
1.7k 1
1.5k 5
1.4k 14
2.6k 12
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号