Consider this layout:
<template>
<FlexboxLayout @tap="dismiss">
<Button text="Submit" @tap="submit" />
</FlexboxLayout>
</template>
<script>
export default {
methods: {
dismiss () {
console.log('dismiss')
},
submit () {
console.log('submit')
}
}
}
</script>
When tap on FlexboxLayout
area console output will be:
dismiss
and its okey.
When tap on "Submit" button console output will be:
dismiss
submit
But we expect to get:
submit
Since we have no official way to do this (like what in browser Event.stopPropagation), then here is the hacky/dirty way:
<template>
<FlexboxLayout @tap="dismiss">
<StackLayout @tap="nothing">
<Button text="Submit" @tap="submit" />
</StackLayout>
</FlexboxLayout>
</template>
<script>
export default {
data () {
return {
ignoreTap: false
}
},
methods: {
nothing () {
this.ignoreTap = true
,
dismiss () {
if (this.ignoreTap) {
this.ignoreTap = false
return true
}
console.log('dismiss')
},
submit () {
console.log('submit')
}
}
}
</script>
Investigations:
Top comments (0)