Как передать модификаторы событий в слот Scoped в Vue? - PullRequest
0 голосов
/ 11 марта 2020

У меня есть обработчики событий, переданные родительскому элементу, а затем дочернему элементу через выделенные слоты Как мне написать так, чтобы я все еще мог получить доступ к модификаторам событий Vue? Мне нужно что-то эквивалентное @dragenter.prevent.self="someAction()"

// DragAndDropUploader.vue
<template>
    <div>   
        <slot :events="eventHandlers"></slot>
    </div>
</template>

<script>
export default {
    computed: {
        eventHandlers() {
            return {
                dragover: event => event.preventDefault(),
                dragenter: event => {
                    event.preventDefault()
                }
                drop: event => {
                    event.preventDefault()
                    this.performAction(event)
                }
            }
        }
    }
    methods: {
        performAction(){
            console.log('hi')
        }
    }
}



// ParentComponent.vue
<template>
    <drag-and-drop-uploader v-slot="{ events }">
        <div v-on="events">
            <image-picker></image-picker>
        </div>
    </drag-and-drop-uploader>
</template>

1 Ответ

0 голосов
/ 11 марта 2020

Вы можете использовать карри для передачи аргумента события:

@dragenter.prevent.self="(e) => someAction(e)"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...