Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Vue找不到vuetify v-img元素的动态源_Javascript_Vue.js_Vuetify.js - Fatal编程技术网

Javascript Vue找不到vuetify v-img元素的动态源

Javascript Vue找不到vuetify v-img元素的动态源,javascript,vue.js,vuetify.js,Javascript,Vue.js,Vuetify.js,我需要使用vuetify动态加载图像(从文件系统而不是url)。但是,当我在v-img元素中绑定路径变量时,vue找不到它。当我使用“required”方法静态地放置它时,它是ok的 如何使用vuetify选择动态路径?这是文件加载器的问题吗 我希望在运行时动态地选择映像。例如,如果我有“下一步”按钮,我想加载下一个图像。下面是Vue.js中的代码 <html> <v-img v-bind:src="require(myPath)" asp

我需要使用vuetify动态加载图像(从文件系统而不是url)。但是,当我在v-img元素中绑定路径变量时,vue找不到它。当我使用“required”方法静态地放置它时,它是ok的

如何使用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>

数据:()=>({
我的账号:1,
myPath:“../myimages/2.png”
})
[Vue warn]:渲染中出错:“错误:在-->的src/App.Vue Vue.runtime.esm.js:619中找不到模块“../myiamges/2.png” 错误:“找不到模块“../imyimages/2.png” WebPackageMPtyContext组件同步:2 渲染游戏表。vue:30 VueJS 21 运行es6.promise.js:75 通知es6.promise.js:92 flush_microtask.js:18 vue.runtime.esm.js:1888


尝试使用计算属性,例如:

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

数据:()=>({
我的账号:1,
myPath:“../myimages/2.png”
}),
计算:{
imageSrc(){
返回this.myPath;
}
}

这将使imageSrc成为一个动态变量,但您说过要单击“下一步”按钮,此单击需要更改“myPath”值,然后“imageSrc”将更改,v-img将获得此新值

经过长时间的研究和尝试,我找到了自己问题的答案

这里的问题在于“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>

数据:()=>({
我的账号:1,
myFilename:“2.png”
})
在这种情况下,我可以在运行时更改myFilename,它也可以工作。

您也可以这样做:

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


这在Vuetify 1.5中起作用

在实现computed属性后,问题仍然存在。发生了相同的错误。Vue.js以某种方式正确解释了错误所述的动态路径,但仍然找不到该文件。另一方面,静态路径仍在工作。当我将路径更改为url路径并删除require方法时,它就工作了。例如:v-bind:src=myPath myPath:“”,