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

React中使用Markdown渲染JSON API输出遇列表渲染问题求助

解决ReactMarkdown无法渲染列表的方案

1. 检查JSON输出的列表格式是否符合标准Markdown规范

  • 无序列表需确保每个列表项前有空格分隔的短横线/星号,例如:
    - 列表项1
    - 列表项2
    
  • 有序列表需确保数字后跟英文句点和空格,例如:
    1. 有序项1
    2. 有序项2
    
  • 排查API返回的JSON中,列表项是否因转义问题丢失了必要的换行或空格,比如是否被压缩成了一行文本。

2. 调整unskipNewlines函数的处理逻辑

  • 如果你的函数仅处理了换行符的转义,可能没有保留列表项所需的段落分隔。确保函数不会将列表项之间的换行合并,示例调整:
    const unskipNewlines = (text: string) => {
      // 保留列表项前的换行,同时处理普通换行
      return text.replace(/\\n/g, '\n').replace(/(?<=- |\d\. )\n/g, '\n');
    };
    
  • 避免过度转义导致Markdown语法结构被破坏,比如不要将短横线或数字句点转义成实体字符。

3. 验证ReactMarkdown的配置参数

  • 确保remarkGfm被正确传入插件数组,且未禁用列表相关的解析规则:
    import ReactMarkdown from 'react-markdown';
    import remarkGfm from 'remark-gfm';
    
    // 渲染组件示例
    <ReactMarkdown
      remarkPlugins={[remarkGfm]}
      children={unskipNewlines(aiAnswer)}
    />
    
  • 检查是否设置了skipHtml或其他可能干扰列表渲染的参数,若有可临时移除测试。

4. 排查文本预处理环节

  • 如果AI回答在传入ReactMarkdown前有其他预处理步骤(比如HTML转义),需确保Markdown列表的语法字符(-、1.等)未被转义成&ndash;或&#46;这类实体。
  • 可以在渲染前打印处理后的文本,确认列表的Markdown结构完整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 10:30:02