参考GPT的回答内容,React-markdown 库默认情况下将行末两个空格和换行符解释为硬换行符,也就是会将它们渲染为
标签。
如果你想保留所有的换行符并渲染为
标签,可以使用 React-markdown 的 breaks 属性来实现:
import ReactMarkdown from 'react-markdown';
function MyComponent({ content }) {
return <ReactMarkdown source={content} escapeHtml={false} breaks={true} />;
}
上述代码中,breaks 属性被设置为 true,这会将所有的换行符解释为
标签。
如果你想将行末两个空格和换行符解释为硬换行符,可以将 breaks 属性设置为 false,同时在 Markdown 文本中每行末尾加上两个空格。
如果你不希望行末两个空格和换行符被解释为硬换行符,也不想将它们渲染为
标签,可以将 breaks 属性设置为 false,并且在 Markdown 文本中每行末尾只加上一个空格。
回答不易,还请采纳!!!
React-markdown 在渲染 Markdown 文本时,默认会将连续的换行符转换成一个空格。这是因为 Markdown 中,单个换行符通常被解释为在同一段落中插入一个换行符,而需要在段落之间插入空行。因此,React-markdown 认为将连续的换行符转换成空格可以更好地表现这种语义。
如果你希望 React-markdown 保留换行符而不是转换成空格,可以使用 breaks 属性,将其设置为 true。例如:
import ReactMarkdown from 'react-markdown';
const markdown = '这是一段\n包含\n多个换行符的文本。';
function App() {
return <ReactMarkdown source={markdown} breaks={true} />;
}
参考GPT和自己的思路,React-markdown将多个换行符视为一个空格的行为是其默认行为。如果您希望保留换行符,请使用breaks prop,该prop会将单个换行符渲染为
标签。您可以将其设置为true,以便在Markdown文本中保留单个换行符的位置:
<ReactMarkdown breaks={true}>YOUR MARKDOWN HERE</ReactMarkdown>
或者,您可以使用escapeHtml prop,该prop会将所有HTML字符实体转义为其实体名称或数字,这将保留换行符:
<ReactMarkdown escapeHtml={false}>YOUR MARKDOWN HERE</ReactMarkdown>