【问题标题】:How to show local SVG image in Image component of react-native如何在 react-native 的 Image 组件中显示本地 SVG 图像
【发布时间】:2020-07-24 19:17:32
【问题描述】:

我正在开发一个 react-native 应用程序。我的项目中本地有一堆 SVG 文件。我想使用我的自定义组件来呈现文本和 SVG 图像。

这是我的自定义组件,它应该为静态 SVG 文件呈现 TextImage

import React from 'react';
import {View, Text, Image, StyleSheet} from 'react-native';

export default MyComponent = ({svgFile, text}) => {
   return (<View style={styles.line}>
        <Image source={svgFile} />
        <Text>{text}</Text>
      </View>)
}

在我的屏幕上,我尝试显示几个MyComponent,每个都呈现一个特定的 SVG 图像:

<View>
          
   <MyComponent
      svgFile={require('../assets/images/tiger.svg')}
      text="tiger"
   />

   <MyComponent
      svgFile={require('../assets/images/elephant.svg')}
      text="elephant"
   />

   ...
</View>

但只显示文本,不显示图像。如何显示带有Image 组件的 SVG 文件?我需要让它同时在 Android 和 iOS 上运行。

【问题讨论】:

    标签: react-native svg


    【解决方案1】:

    React Native 中的 Image 组件不支持 SVG 渲染。我建议使用react-native-svg 在您的自定义组件中呈现您的 SVG。将您的 svg 文件导入到组件中,并使用 &lt;SvgXml /&gt; 渲染它:

    export default MyComponent = ({svgFile, text}) => {
       return (<View style={styles.line}>
            <SvgXml xml={svgFile} />
            <Text>{text}</Text>
          </View>)
    }
    
    

    【讨论】:

    • 我还应该使用{require('../assets/images/tiger.svg')} 分配给svgFile 吗?
    • 我只使用导入语法:import MySvg from ‘assets/my-svg.svg’
    猜你喜欢
    • 2015-12-24
    • 2017-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-09
    相关资源
    最近更新 更多