gpt4 book ai didi

android - 如何在 react-native 上使用 svg 图像?

转载 作者:行者123 更新时间:2023-12-03 14:47:58 26 4
gpt4 key购买 nike

我正在尝试在我的 native react 应用程序上使用 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 文件转换为可 react 的 SVG 文件。

如果有人有自动导入 svg 文件的有效解决方案,那对我会有很大帮助。

最佳答案

重要提示 - 我在真正的 Android 设备上开发,而不是在 Expo 中!
这是在 Github 上打开的问题中的一些代码,经过一些修改后实际上对我有用。
Link to Github issue
在我的 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 的一部分文件:
  • “ react 原生”:“0.63.2”,
  • "react-native-svg": "^12.1.0",
  • “react-native-svg-transformer”:“^0.14.3”
  • 关于android - 如何在 react-native 上使用 svg 图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60238132/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com