我正在尝试破解此代码 [A](请参阅底部的小提琴):
<div class="q-uploader-files scroll">
<q-item
v-for="file in files"
:key="file.name"
>
<q-progress :percentage="file.__progress"/>
<div>
{{ file.__progress }}%
</div>
<q-item-side v-if="file.__img" :image="file.__img.src">
</q-item-side>
<q-item-side right>
<q-item-tile
:icon="file.__doneUploading ? 'mdi-done' : 'mdi-clear'"
:color="file.__doneUploading ? 'primary' : 'color'"
@click.native="__remove(file)"></q-item-tile>
</q-item-side>
</q-item>
</div>
进入 [B] 基本相同的代码,但随后带有一个子组件。这里的父母:
<div class="q-uploader-files scroll">
<my-uploader-progress
v-for="file in files"
:file="file"
:key="file.name"
:color='color'
>
</my-uploader-progress>
</div>
孩子在这里:
<template>
<q-item>
<q-progress
:color="file.__failed ? 'negative' : 'grey'"
:percentage="file.__progress"
/>
<div>
{{ file.__progress }}%
</div>
<q-item-side v-if="file.__img" :image="file.__img.src"/>
<q-item-side v-else icon="mdi-file" :color="color"/>
<q-item-main :label="file.name" :sublabel="file.__size"/>
<q-item-side right>
<q-item-tile
:icon="file.__doneUploading ? 'mdi-done' : 'mdi-clear'"
:color="file.__doneUploading ? 'primary' : 'color'"
@click.native="__remove(file)"
/>
</q-item-side>
</q-item>
</template>
在孩子身上,我设置了file
属性:
props: {
file: {
type: File,
required: true
}
},
不知何故,在父子代码中一定存在问题,因为file
[B] 中的子(在渲染时)不存在 __img 属性,请参见:
,而它确实存在于 [A] 中:
怎么了?控制台中没有错误。
原始 ([A]) 代码来自这里。文件对象由一个 xhr 实例组成(我想?!)。
这里是[A]和[B]的小提琴/沙箱。按添加并选择要上传的图像,它不会上传,但[A]会显示其缩略图img等;对 [B] 执行相同操作,这些将不会显示。
NOTA BENE:我注意到file.__img
[B] 中没有首先显示,但是当我开始在子组件中编辑代码时...,它突然显示。所以显然/也许它是异步的,在渲染刷新之后它就在那里......?!