【发布时间】:2021-09-09 13:40:59
【问题描述】:
我有一个多文件输入对象“文件”,我想生成预览 blob。预览对象是正确的,但是 files.value.map 不起作用。我想将 blob 附加到“文件”对象。我错过了什么?
const files = ref([])
const previews = ref([])
const toBlob = async(file) => {
const buffer = await file.arrayBuffer()
const blob = new Blob([buffer])
const srcBlob = URL.createObjectURL(blob)
return srcBlob
}
watch(files, async() => {
previews.value = await Promise.all(
files.value.map((file) => toBlob(file))
)
await Promise.all(files.value.map(async(file) => {
console.log(file)
file.preview = await toBlob(file)
}))
})
return {
files,
previews
}
这在 vue 模板中是空白的。但是,console.log 是正确的。
<span v-for="file in files" :key="file">{{file.preview}}</span>
这是正确的,显示预览 blob:
<span v-for="preview in previews" :key="preview">{{preview}}</span>
【问题讨论】:
标签: javascript vue.js vuejs3 vue-composition-api