Використовуйте https://github.com/kristerkari/react-native-svg-transformer
У цьому пакеті згадується, що .svg
файли не підтримуються у React Native v0.57 і нижче, тому використовуйте .svgx
розширення для файлів svg.
Для використання в Інтернеті або для реагування на рідному веб-сайті https://www.npmjs.com/package/@svgr/webpack
Щоб відтворити svg-файли з використанням react-native-svg-uri
рідної реакції версії 0.57 і старішої, вам потрібно додати наступні файли до свого кореневого проекту
Примітка: змінити розширення svg
наsvgx
Крок 1: Додайте файл transformer.js
до кореня проекту
const cleanupSvg = require('./cleanup-svg');
const upstreamTransformer = require("metro/src/transformer");
const svgExtensions = ["svgx"]
function fixRenderingBugs(content) {
return "module.exports = `" + content + "`";
}
module.exports.transform = function ({ src, filename, options }) {
if (svgExtensions.some(ext => filename.endsWith("." + ext))) {
return upstreamTransformer.transform({
src: fixRenderingBugs(src),
filename,
options
})
}
return upstreamTransformer.transform({ src, filename, options });
}
Крок 2: Додайте rn-cli.config.js
до кореня проекту
module.exports = {
getTransformModulePath() {
return require.resolve("./transformer");
},
getSourceExts() {
return [ "svgx"];
}
};
Вищезазначені рішення також працюватимуть у виробничих додатках ✅