I am getting error Cannot read property 'map' of undefined.I don't know how to fix it, can you help?
I download code from https://github.com/alonesuperman/react-native-svg-src
C:\\Users\\MONSTER\\Desktop\\React\\mathero\\src\\assets\\getSvg.js:22 Promise.all(files.map(filename => readfile(filename))) ^
TypeError: Cannot read property 'map' of undefined at C:\\Users\\MONSTER\\Desktop\\React\\mathero\\src\\assets\\getSvg.js:22:25 at FSReqWrap.oncomplete (fs.js:135:15) C:\\Users\\MONSTER\\Desktop\\React\\mathero\\src\\assets>node getSvg.js C:\\Users\\MONSTER\\Desktop\\React\\mathero\\src\\assets\\getSvg.js:22 Promise.all(files.map(filename => readfile(filename))) ^ TypeError: Cannot read property 'map' of undefined at C:\\Users\\MONSTER\\Desktop\\React\\mathero\\src\\assets\\getSvg.js:22:25 at FSReqWrap.oncomplete (fs.js:135:15)
My error code :
// getSvg.js
var fs = require('fs');
var path = require('path');
const svgDir = path.resolve(__dirname, './SVGFOLDER');
function readfile(filename) {
return new Promise((resolve, reject) => {
fs.readFile(path.join(svgDir, filename), 'utf8', function (err, data) {
console.log(data.replace(/<\?xml.*?\?>|<\!--.*?-->|<!DOCTYPE.*?>/g, ''));
if (err) reject(err);
resolve({
[filename.slice(0, filename.lastIndexOf('.'))]: data,
});
});
});
}
function readSvgs() {
return new Promise((resolve, reject) => {
fs.readdir(svgDir, function (err, files) {
if (err) reject(err);
Promise.all(files.map(filename => readfile(filename)))
.then(data => resolve(data))
.catch(err => reject(err));
});
});
}
readSvgs().then(data => {
let svgFile = 'export default ' + JSON.stringify(Object.assign.apply(this, data));
fs.writeFile(path.resolve(__dirname, './svgs.js'), svgFile, function (err) {
if (err) throw new Error(err);
})
}).catch(err => {
throw new Error(err);
});
i it's okay
const svgDir = path.resolve(__dirname, './SVGFOLDER');
to
const svgDir = path.resolve(__dirname, './sorusvg');
sorusvg is my file :)
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.