前言
记录一些使用React中遇到的一些问题
React-Markdown 自定义组件渲染错位问题
在编写大模型应用时,接入DeepSeek-R1输出结果带有think
标签,其解析存在错位问题
1 | # 原始内容 |
在 GitHub Issue #889 中,也有找到相关 Issue
核心原因分析: Markdown 的段落自动包裹机制
当原始 Markdown 内容包含换行时,react-markdown
默认会将连续文本包裹在 <p>
标签中。例如:
1 | think about something |
会被解析为:
1 | <p>think about something</p> |
当同时使用 rehype-raw
处理原生 HTML 标签时,自定义组件可能被意外包裹在 <p>
标签内,导致 DOM 结构错位。
解决方案1. 关闭自动段落包裹
通过组件映射(components
prop)覆盖默认段落行为:
1 | const components = { |
解决方案2. 将think单独一行
1 | export const MessageComponent: FC<MessageProps> = ({ |
本文作者:
ionluo
本文链接: http://www.ionluo.cn/blog/posts/6fa50f54.html
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!
本文链接: http://www.ionluo.cn/blog/posts/6fa50f54.html
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!