enter image description here

我在vuetify中使用nuxt.我有一个 carousel 组件.我想生成一个列表.静态文件夹中的png文件.下面是Dynamically import images from a directory using webpackhttps://webpack.js.org/guides/dependency-management/#context-module-api,我的组件如下所示:

 <template>
  <v-carousel>
    <v-carousel-item v-for="(item,i) in items" :key="i" :src="item.src"></v-carousel-item>
  </v-carousel>
</template>


<script>

  var cache = {};
  function importAll(r) {
    r.keys().forEach(key => cache[key] = r(key));
  }
  var getImagePaths = importAll(require.context('../static/', false, /\.png$/));
  // At build-time cache will be populated with all required modules. 
  export default {
    data: function() {
      return {
        items: getImagePaths
      };
    }
  };
  //     export default {
  //       data() {
  //         return {
  //           items: [{
  //               src: "/52lv.PNG"
  //             },
  //             {
  //               src: "https://cdn.vuetifyjs.com/images/carousel/sky.jpg"
  //             },
  //             {
  //               src: "https://cdn.vuetifyjs.com/images/carousel/bird.jpg"
  //             },
  //             {
  //               src: "https://cdn.vuetifyjs.com/images/carousel/planet.jpg"
  //             }
  //           ]
  //         };
  //       }
  //     };
  //
</script>

我想搜索静态文件夹,获取图像的路径,将它们放入数组中,并将它们导出到html模板.

我发现,如果我编辑脚本的items数组以查看以下内容,它将起作用:

项目:[

如何调整代码以获得所需的结果?

编辑:

我查看了提议的解决方案,但在逐字复制之后,我得到了以下错误.

enter image description here

推荐答案

以下似乎有效:

<template>
  <v-carousel>
    <v-carousel-item v-for="(item,i) in items" :key="i" :src="item.src"></v-carousel-item>
  </v-carousel>
</template>


<script>
  var cache = {};
  const images = require.context('../static/', false, /\.png$/);
  var imagesArray = Array.from(images.keys());
  var constructed = [];
  function constructItems(fileNames, constructed) {
    fileNames.forEach(fileName => {
      constructed.push({
        'src': fileName.substr(1)
      })
    });
    return constructed;
  }
  var res = constructItems(imagesArray, constructed);
  console.log(res);
  export default {
    data: function() {
      return {
        items: res
      };
    }
  };

Vue.js相关问答推荐

无法解析组件:google—pay—button

我可以将Created()中内置的内容传递给Provide属性吗?

Vue 3 需要 main.js 中的文件

Svelte 中的简单react 性实验以意想不到的方式失败了. Vue 等效项没有

Vue 脚本标签中更漂亮的 destruct 功能

如何将字符串中的
解析为 VUE.js 中的 html 标记

有条件地在 Vue 中添加一个 CSS 类

Vuetify v-data-table ,如何在 HTML 中呈现标题文本?

Vue test-utils 如何测试 router.push()

SVG 加载 vue-svg-loader; [Vue 警告]:无效的组件定义

如何在 Vue 中动态创建组件上获取更新的 $refs?

基于条件的VueJS HTML元素类型

使用 Spring Boot(VueJS 和 Axios 前端)禁止发布 403 帖子

如何在 vue.js 2 上循环对象观察者?

如何从浏览器的源中删除 webpack://

如何在 Vuetify DataTable 组件中设置初始每页行数值?

从子组件 Vue 更新父模型

在鼠标悬停时动态添加和删除类

Vue 3 组合 API 数据()函数

这个业务逻辑有多少属于 Vuex?