使用vue-preview報錯Cannot read property 'open' of undefined


最近在做一個vue項目中時,需要使用vue-preview插件制作縮略圖,首先在終端使用npm i vue-preview -S指令安裝了vue-preview插件,然后在main.js中,導入並引用:

import VuePreview from 'vue-preview'

Vue.use(VuePreview)

接着在需要用到vue-preview插件的組件中寫入:
<img class="preview-img" v-for="(item, index) in list" :src="item.src" height="100" @click="$preview.open(index, list)" :key="item.src">
運行npm run dev后,能夠獲得縮略圖效果,但是在點擊圖片時預覽失敗,控制台錯誤提示:Cannot read property 'open' of undefined
根據錯誤提示,意思是不能讀取未定義的open屬性,但是這里使用open是插件的模板中的啊,應該是插件自帶的方法,所以我懷疑是自己插件安裝或引用錯誤,然后檢查了一遍,再次運行,還是報同樣的錯誤,故而開始在百度上搜索,不幸的是,在百度上並沒有搜到這個錯誤的解決方法,但幸運的是,搜索到了關於“使用vue-preview插件實現縮略圖時報錯:$preview is not defined”這個錯誤的分析,“$preview is not defined”錯誤的原因是因為vue-preview插件的使用方法已經更新了,要根據不同版本的vue-preview使用對應的模板。我恍然大悟,立刻到GitHub中查詢了一下最新的vue-preview,果然使用方法已經更新。
此時問題已經明朗了,在項目中我安裝的是最新版本的vue-preview,但是使用模板卻是以前的,所以,解決方案無非降級法和升級法。
這里,我使用的是降級的方案,卸載最新版本的vue-preview,重新安裝指定版本:npm i vue-preview@^1.0.5 -S,問題解決!
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM