Taro + react-native 项目鸿蒙化中 SVG 图片无法显示的问题

问题背景
  • Taro + react-native 项目迁移至鸿蒙(HarmonyOS)的现状
  • 原项目使用@tarojs/components库里的 Image 组件加载 SVG 图片,但在鸿蒙环境下失效
  • 技术栈版本:react-native-harmony@0.72.28 + Taro@4.0.9
问题分析
  • Taro 默认 Image 组件未适配鸿蒙的 SVG 渲染机制
  • react-native-harmony 对 SVG 的支持情况
解决方案

重新从react-native库里引入Image组件对原本的组件进行替代

实施步骤与代码示例

原本Taro组件

import { Image } from '@tarojs/components'

<View className="mineHeader-bg">
    <Image src={headerBg} svg style={{width: '100%', height: '100%'}}/>
</View>

RN Image组件

import { Image as RNImage, StyleSheet } from 'react-native'

const styles = StyleSheet.create({
  bg:{
    width:'100%',
    height:'100%',
  }
});

<View className="mineHeader-bg">
     <RNImage source={headerBg} style={styles.bg}/>
 </View>
验证与测试
  • 在鸿蒙模拟器/真机中验证 SVG 渲染效果
    在这里插入图片描述
    这样图标就能正常显示了
Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐