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

为什么我的React组件将JSX渲染为文本而非实际HTML元素?

问题原因

你在map遍历的回调函数中返回的是拼接了<li>标签的普通字符串,React为了防范XSS注入风险,默认不会将插入的字符串解析为HTML标签,只会原样作为文本渲染,因此你会看到标签源码直接显示在页面上。

修正代码

直接返回JSX元素即可,不需要用引号包裹标签,同时要为遍历生成的列表元素添加唯一key属性,避免React抛出渲染警告:

const Friends = (props) => {    
  return(
    <div>
      <p>Hello, {props.name}.</p>
      <p>Below is a list of your friends: </p>
      <ul>
        {/* 直接写JSX,不要用引号包裹标签 */}
        {props.friends.map((x, index) => <li key={index}>{x}</li>)}
      </ul>
    </div>
  )
}
补充说明

如果你的friends数组中每一项都有唯一的业务ID(比如好友用户ID),优先使用业务ID作为key值代替数组索引,渲染性能和稳定性更佳。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 04:36:02