簡體   English   中英

vue找不到vuetify v-img元素的動態源

[英]Vue cannot find the dynamic source of the vuetify v-img element

我需要使用 vuetify 動態加載圖像(來自我的文件系統而不是 url)。 但是,當我在 v-img 元素中綁定路徑變量時,vue 找不到它。 當我使用“必需”方法靜態放置它時,就可以了。

如何使用 vuetify 選擇動態路徑? 這是文件加載器的問題嗎?

我希望在運行時動態選擇圖像。 例如,如果我有“下一個”按鈕,我想加載下一個圖像。 這是 Vue.js 中的代碼

<html>   
   <v-img 
      v-bind:src="require(myPath)"
      aspect-ratio="1.5"
      max-height="500"
      contain
   />
</html>

<script>    
    data: () => ({
        mycount: 1,
        myPath: "../myimages/2.png"
    })
</script>

[Vue 警告]:渲染錯誤:“錯誤:無法找到模塊 '../myiamges/2.png'” 在 ---> at src/App.vue vue.runtime.esm.js:619 中找到錯誤:“找不到模塊 '../imyimages/2.png'" webpackEmptyContext 組件同步:2 渲染 Gamesheet.vue:30 VueJS 21 運行 es6.promise.js:75 通知 es6.promise.js:92 刷新 _microtask.js:18 vue .runtime.esm.js:1888

經過長時間的研究和嘗試,我找到了自己問題的答案。

這里的問題在於“require”方法。 在編譯期間,當我使用動態路徑時,它需要知道圖像所在的文件夾。 這里 因此,動態提供包含文件名的路徑不會啟用“require”方法來僅識別文件夾。 那是我的解釋。

所以我修改了這樣的代碼,它對我有用:

<html>   
   <v-img 
      v-bind:src="require('../myimages/' + myFilename)"
      aspect-ratio="1.5"
      max-height="500"
      contain
   />
</html>

<script>    
    data: () => ({
        mycount: 1,
        myFilename: "2.png"
    })
</script>

在這種情況下,我可以在運行時更改 myFilename 並且它也能正常工作。

嘗試使用計算屬性,例如:

<html>   
   <v-img 
     v-bind:src="require(imageSrc)"
     aspect-ratio="1.5"
     max-height="500"
     contain
   />
</html>

<script>    
   data: () => ({
      mycount: 1,
      myPath: "../myimages/2.png"
   }),
computed: {
   imageSrc() {
      return this.myPath;
   }
}
</script>

這將使 imageSrc 成為一個動態變量,但是您說單擊“下一步”按鈕,這次單擊需要更改“myPath”值,然后“imageSrc”將更改,v-img 將獲得此新值;

你也可以這樣做:

<v-img 
    :src="`${image-variable}`">
</v-img>

這適用於 Vuetify 1.5

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM