微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

反应原生 svg 未正确呈现 1.转换为反应组件2.直接使用SVG文件

如何解决反应原生 svg 未正确呈现 1.转换为反应组件2.直接使用SVG文件

我们正在开发一个 Vue/ReactNative 项目并且有一个奇怪的现象,在 Reactnative 组件 react-native-svg(版本 12.1.0)SVG 未正确呈现。 在浏览器中它被正确呈现。

SVG 本身是由 Adob​​e 创建并使用 CSS 样式。不是所有的 CSS 元素都支持吗?

我们从外部 Uri 动态使用 SVG,而不是作为静态文件

<svg-css-uri
    :key="'image_' + selectedItem.id"
    :height="200"
    :uri="selectedItem.picture.url"
  ></svg-css-uri>
</view>
    
    
mystyle: {
  marginLeft: 25,flex: 0.5,justifyContent: "center",}

应该是这样的

enter image description here

看起来像这样(错误

enter image description here

解决方法

我能够在 iOS 上的 React Native 下渲染 SVG,如下所示: https://www.codepile.net/pile/7AP5vlmn(使用此代码)

使用 https://react-svgr.com/playground/,我将 SVG 转换为 React Native 组件。然后,您可以轻松地从 .js 文件导入和呈现。这是它在 iOS 模拟器上的样子:

enter image description here

,

使用 react-native-svg

有两种使用 SVG 图像的方法

1.转换为反应组件

您可以使用此 playground 将 svg 图像转换为 React 组件。

注意:也可以通过 CLI 转换图像,但我更喜欢操场,因为它更容易。

2.直接使用SVG文件

为此,您可能需要执行文档 here

中提到的步骤

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。