Gus*_*itė 2 javascript node.js reactjs webpack
我想通过动态导入将文件夹中的所有图片导入到组件中,如下所示:
索引.js
const testFolder = './2020/';
const fs = require('fs');
const path = require('path');
const files = fs.readdirSync(testFolder);
const allowedExts = ['.png', '.jpg', 'svg'] // add any extensions you need
const modules = {};
if (files.length) {
let filterThruFiles = files.filter(file => allowedExts.indexOf(path.extname(file)) > -1)
filterThruFiles.forEach(file => modules[file] = `./${file}`);
}
module.exports = modules;
let modulesStringify = JSON.stringify(modules);
fs.writeFileSync('pics-url-list.json', modulesStringify);
Run Code Online (Sandbox Code Playgroud)
我得到一个带有路径的对象并将其写入文件,效果很好:
//pics-url-list.json
{
"1-1.jpg":"./1-1.jpg",
"1-2.jpg":"./1-2.jpg",
"1-3.jpg":"./1-3.jpg"
//and so on
}
Run Code Online (Sandbox Code Playgroud)
但是当我运行 npm start 时,出现此错误。主要问题是如何在 React 组件中访问这个 .json 文件?现在 App.js 中没有 console.log 工作,它只显示有关 fs.readdirSync 的错误
//App.js component
import picList from '../images/pics-url-list.json';
console.log(picList);
Run Code Online (Sandbox Code Playgroud)
小智 6
客户端应用程序无法使用类似 fs 的模块。有一种方法可以动态导入所有图像,require.context
例如,
function importAll(r) {
return r.keys().map(r);
}
const images = importAll(require.context('./', false, /\.(png|jpe?g|svg)$/));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7774 次 |
| 最近记录: |