android - 如何在 react-native 上使用 svg 图像?
问题描述
我正在尝试在我的本机反应应用程序上使用 svg 图像,我正在 Android 上开发。
所以我跟着这个教程=>
https://medium.com/faun/add-custom-svg-icons-to-your-expo-app-279b492f6a15
当我设法显示图像时,我有一个错误无法读取未定义的“填充”属性,所以我尝试降级 react-native-svg 的版本并显示图像,但是一旦我集成了 react-navigation 我的启动时崩溃的应用程序博览会。
于是找了半天,想知道这次崩溃的原因。
我试图删除 react-native-svg 库,metroconfig.js 文件,expo 再次工作,我不知道这是否是问题的原因。
我想知道人们是否遇到过这些问题,或者如果没有,与当前版本的 RN 一起在 react-native 应用程序中导入 svg 图像的最佳方法是什么?
预先感谢您的帮助和回答。
编辑
我用最新版本的 react native / expo / sdk expo 测试了 react-native-svg 和 react-native-transformer-svg
从我创建 metro.config.js 文件并通过更新 app.json 文件将其与 expo 链接的那一刻起,我的 expo 应用程序在启动时崩溃。
我不得不在没有 react-native-transformer-svg 的情况下使用 react-native-svg,也就是说我必须将 SVG 文件转换为可反应的 SVG 文件。
如果有人有自动导入 svg 文件的有效解决方案,那对我会有很大帮助。
解决方案
重要提示 - 我在真正的 Android 设备上开发,而不是在 Expo 中!
这是在 Github 上打开的问题中的一些代码,经过一些修改后实际上对我有用。
在我的metro.config.js
文件中,我终于有了以下代码:
const { getDefaultConfig } = require("metro-config")
module.exports = (async () => {
const {
resolver: { sourceExts, assetExts },
} = await getDefaultConfig()
// here I extend the extensions needed for RN because I use JSX.
// you don't need this if you use pure JS files
const updatedSourceExts = [...sourceExts, "jsx", "js", "json", "ts", "tsx"]
return {
transformer: {
getTransformOptions: async () => ({
transform: {
experimentalImportSupport: false,
inlineRequires: false,
},
}),
babelTransformerPath: require.resolve("react-native-svg-transformer"),
},
resolver: {
assetExts: assetExts.filter((ext) => ext !== "svg"),
sourceExts: [...updatedSourceExts, "svg"],
},
}
})()
我的package-json
文件的一部分:
- “反应原生”:“0.63.2”,
- "react-native-svg": "^12.1.0",
- “react-native-svg-transformer”:“^0.14.3”
推荐阅读
- java - 我不太确定如何在自由配置文件中配置 db2drivers
- kubernetes - 无法执行 Helm Init:未找到分蘖
- jmeter - 在 For Each 循环下使用时未执行 CSV 数据集配置
- database - 如何打破循环依赖?
- spring-boot - 在生产环境中创建 WebServiceClient 对象时 Srping 启动 Soap 客户端错误
- r - 根据现有列创建新的 data.table 列
- maven - asciidoctor-maven-plugin 生成 pdf - 意外的 kDO_BLOCK
- ocaml - OCaml 中元组的类型注释
- sql - 当我使用 SUM 函数时,组中的多个连接错误
- swift - 没有这样的模块 'PackageDescription' sourcekitd - Ubuntu