API композиции Vue вызывает метод дочернего компонента

TL; DR; В версии 2 this.$refs выполняет эту работу, но как я могу это сделать в API композиции v3?

Я пытаюсь использовать функцию CustomUpload PrimeVue в Vue3, но этот API не очищает файлы загрузки после их загрузки, и мне нужно вызвать clear() метод дочернего компонента в родительском компоненте, чтобы очистить файлы и обновить кнопку.

Вот мой App.vue

<template>
  <FileUpload
    name="upload"
    url="/"
    mode="basic"
    :auto="true"
    :maxFileSize="26214400"
    :fileLimit="1"
    :customUpload="true"
    @uploader="upload"
  />
  <Button name="lalaal">qweeq</Button>
</template>

<script>
import FileUpload from 'primevue/fileupload'

export default {
  setup() {
    const upload = e => {
      console.log('testing', e)
    }
    return { upload }
  },
  components: {
    FileUpload
  }
}
</script>

благодаря

1 ответ

Решение

Вы можете использовать шаблон ref, а затем использовать uploadFile.value вместо this.$refs.uploadFile:

<template>
  <FileUpload
    ref="uploadFile"
    name="upload"
    url="/"
    mode="basic"
    :auto="true"
    :maxFileSize="26214400"
    :fileLimit="1"
    :customUpload="true"
    @uploader="upload"
  />
  <Button name="lalaal">qweeq</Button>
</template>

<script>
import FileUpload from 'primevue/fileupload'
import {ref} from "vue";

export default {
  setup() {
    const uploadFile=ref(null)
 
    
    const upload = e => {
      console.log('testing', e)
    }
    return { upload,uploadFile}
  },
  components: {
    FileUpload
  }
}
</script>
Другие вопросы по тегам