проблема: Vuejs, есть компонент (загрузка файла), который отображается внутри родительского элемента в цикле v-for
.Я передаю ему подпорку для условного рендеринга кнопки удаления (в основном удаляет фон из вида предварительного просмотра div).Как мне сделать только определенный компонент из этого цикла, чтобы он реагировал на отображение / скрытие, а не другие?Например, v-for
отображается 3 FileUpload
компонентов.Все получили isRemoveBtnShown
проп.Как заставить FileUpload1
показывать кнопку, а FileUplod2 and 3
не показывать?
parent:
<FileUpload v-for="(field, index) in uploadFieldsToRender"
ref="file-upload"
:key="field"
:docPageTitle="field"
:isLoading="isLoading"
:shouldDocsBeScanned="shouldDocsBeScanned"
:isUploadError="isUploadError"
:isRemoveBtnShown="isRemoveBtnShown"
@fileUpload="handleFileUpload"
@fileRemoval="handleFileRemoval"
@fileScan="handleFileScan"
@fileUploadMounted="onFileUploadMounted"
/>
FileUpload:
<div v-else class="controls">
<button
v-if="shouldDocsBeScanned"
class="button btn-scan"
@click="() => $emit('fileScan', this.$refs)"
>
<span class="btn-icon"></span>
</button>
<div v-if="true" class="upload-options">
<label>
<input
type="file"
class="image-upload"
accept="image/*, application/pdf"
@change="$event => this.$emit('fileUpload', $event, this.$refs)"
/>
</label>
</div>
<button
v-if="isRemoveBtnShown"
class="button btn-remove"
@click="() => this.$emit('fileRemoval', this.$refs)"
>
<span class="btn-icon"></span>
</button>
</div>
реквизиты:
shouldDocsBeScanned: {
type: Boolean,
default: false
},
isRemoveBtnShown: {
type: Boolean,
default: false
},
Не могу использовать $refs
, поскольку они не реактивны (возможно, проверили, если у cmp фон или нет) Большое спасибо!