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

React中如何遍历对象动态生成带加粗属性值的段落元素?

你可以直接让处理函数返回 JSX 元素数组来实现加粗效果,这是最符合 React 设计逻辑的方案,也能规避安全风险,改造后的代码如下:

const getSearchCriteria = (criteria) => {
  const criteriaElements = []
  // 先过滤出值非空的属性
  const validKeys = Object.keys(criteria).filter(key => criteria[key] !== '')
  validKeys.forEach((key, index) => {
    criteriaElements.push(
      <span key={key}>
        {` ${key}: `}
        <b>{criteria[key]}</b>
        {/* 最后一项不加逗号 */}
        {index !== validKeys.length - 1 ? ',' : ''}
      </span>
    )
  })
  // 拼接开头固定文本返回
  return ['Download request for', ...criteriaElements]
}

// 渲染部分不需要额外处理,直接使用返回结果即可
return (
  <p>
    {getSearchCriteria(searchCriteria)}
  </p>
)

如果你确实需要直接渲染 HTML 字符串,可以使用 React 提供的 dangerouslySetInnerHTML 属性,但要注意:如果 searchCriteria 的值来自用户输入,该方案存在 XSS 注入风险,仅推荐在完全确认内容安全的场景下使用:

const getSearchCriteriaHtml = (criteria) => {
  let htmlStr = 'Download request for'
  const validKeys = Object.keys(criteria).filter(key => criteria[key] !== '')
  validKeys.forEach((key, index) => {
    htmlStr += ` ${key}: <b>${criteria[key]}</b>${index !== validKeys.length - 1 ? ',' : ''}`
  })
  return { __html: htmlStr }
}

return (
  <p dangerouslySetInnerHTML={getSearchCriteriaHtml(searchCriteria)} />
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 18:21:02