gpt4 book ai didi

javascript - Vue 子组件属性不起作用

转载 作者:数据小太阳 更新时间:2023-10-29 04:26:02 24 4
gpt4 key购买 nike

我正在尝试破解此代码 [A](请参阅底部的 fiddle ):

  <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>

这里是 child :

<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>

在 child 身上我设置了file属性:

  props: {
file: {
type: File,
required: true
}
},

父子代码中一定存在问题,因为 file __img 属性在 [B] 中的子项(渲染时)中不存在,请参阅:

enter image description here

,而它确实存在于 [A] 中:

enter image description here

怎么了?控制台没有错误。

原始([A])代码来自here . File Object由一个 xhr 实例组成(我想?!)。

这里是 [A] 的 fiddle /沙盒和 [B] .按 ADD 并选择要上传的图片,它不会上传,但 [A] 会显示其缩略图 img 等;对 [B] 做同样的事情,这些将不会显示。

注意:我注意到 file.__img 没有首先显示在 [B] 中,但是当我开始在子组件中编辑代码时...,它突然显示了。所以显然/也许它是异步的,在渲染刷新后它就在那里......?!

最佳答案

您必须通过返回工厂函数来使属性值具有反应性。

props: {
file: {
type: File,
required: true,
default: function () {
return {
name: '',
_progress: 0
}
}
}
},

关于javascript - Vue 子组件属性不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53125604/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com