【问题标题】:React native svg not rendered correct反应本机 svg 未正确呈现
【发布时间】:2021-03-24 19:54:11
【问题描述】:

我们正在做一个 Vue/ReactNative 项目并且有一个奇怪的现象,在 Reactnative 组件 react-native-svg (version 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",
}

应该这样

看起来像这样(错误)

【问题讨论】:

标签: react-native react-native-svg


【解决方案1】:

有两种方法可以使用react-native-svg 使用 SVG 图像

1。转换成反应组件

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

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

2。直接使用 SVG 文件

为此,您可能需要执行文档here 中提到的步骤

【讨论】:

【解决方案2】:

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

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

【讨论】:

  • 我们从外部 Uri 动态使用 SVG,我们不将其用作静态资源。有没有办法即时完成?
猜你喜欢
  • 1970-01-01
  • 2020-03-27
  • 2021-11-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-28
相关资源
最近更新 更多