我不想在我的模板中顯示多個檔案名,我這樣做:
<div v-for="(image, index) in imagesReturn" :key="index">
<span>{{ image.name }}</span>
</div>
<div>
<generic-input
v-model="imagesReturn"
type="file"
multiple
@change="addFiles"
>
add files
</generic-input>
</div>
<script>
data() {
return{
imagesReturn: [];
}
}
methods: {
addFiles(e) {
let selectedFiles = e.target.files;
for (let img of selectedFiles) {
this.imagesReturn.push(img.name);
}
}
}
</script>
我想在陣列 imagesReturn 中顯示檔案名,但是當我在陣列中推送錯誤時出現錯誤this.imagesReturn.push 不是一個函式,我不知道為什么,我無法在我的模板中顯示檔案名。求求你了,謝謝你。
uj5u.com熱心網友回復:
js 部分對我來說似乎很好。我想問題出在generic-input組件上。
通常,當錯誤something.push is not a function發生時,它總是意味著something不是一個陣列。
由于imagesReturn是使用 的雙向系結v-model,因此generic-input組件可能會imagesReturn從[]to ''(空字串)或null在安裝后更改。
所以我建議你console.log(this.imagesReturn)在里面addFiles()看看值什么時候改變(或watch imagesReturn)。
不知道該generic-input組件是屬于UI框架還是自己創建的。如果屬于 UI 框架,則需要仔細閱讀有關@change="function(params)"event的檔案,尤其是它的 params。如果是自己寫的,則需要查看它在組件中傳入的值是什么emit('change', value)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/366331.html
標籤:Vue.js
上一篇:如何在vuejs模板中使用常量?
