You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

react-native-render-html组件使用报错问题求助

问题原因解析

第一个报错:No source prop was provided

react-native-render-html 的 source 属性要求传入包含html字段的对象,而非直接传递字符串。你直接传入token.description.en(字符串)时,组件无法识别这是有效的source结构,因此触发报错。

即便token.description.en能在<Text>组件正常显示,也只是因为Text组件本身支持字符串作为子元素,和RenderHTML的参数要求完全不同。

修正代码:

<RenderHTML source={{ html: token.description.en }} />

第二个报错:You should always pass contentWith prop

这是因为你使用的是react-native-render-htmlv6及以上版本,该版本API有重大变更:

  • 不再推荐使用source属性,改为直接传入html字符串
  • contentWidth为必填属性,用于指定HTML内容的渲染宽度,适配移动端排版逻辑

你查阅的文档可能对应v5及以下旧版本,因此未提及该必填项。

修正代码:

import { Dimensions } from 'react-native';
// 获取设备宽度,减去外层padding值适配布局
const contentWidth = Dimensions.get('window').width - 80;

<RenderHTML html={test} contentWidth={contentWidth} />

额外优化:你的useEffect依赖数组为空,当token.name变化时页面标题不会同步更新,建议补充依赖项:

useEffect(() => {
  navigation.setOptions({
    title: token.name
  });
}, [navigation, token.name]);

内容的提问来源于stack exchange,提问作者user4016522

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 07:42:39