如何在react-native的Image组件中显示本地SVG图像

laawzig2  于 2023-03-03  发布在  React
关注(0)|答案(1)|浏览(296)

我正在开发一个React原生应用程序。我有一堆SVG文件在我的项目本地。我想使用我的自定义组件来呈现文本和SVG图像。
下面是我的自定义组件,它应该呈现一个Text和一个Image静态SVG文件:

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上都能工作。

wtzytmuj

wtzytmuj1#

React Native中的Image组件不支持SVG渲染,建议使用react-native-svg在自定义组件中渲染SVG,将svg文件导入组件,使用<SvgXml />进行渲染:

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

相关问题