sco*_*pio 3 html javascript jsx reactjs
所以我正在制作一个 React 应用程序,从 API 获取歌曲的歌词
\n\nAPI 给了我一个歌词主体,它是一个字符串,我用它来在页面上显示歌词,问题是,当 React 渲染它时,看起来不是特别好,因为 api 给了我这个:
\n\nThey say "Oh my god I see the way you shine"\xe2\x86\xb5Take your hand, my dear(这是API返回给我的部分歌词数据)
正是这个字符:\xe2\x86\xb5造成了问题,他们很高兴为我提供任何应该是换行符的东西。所以我决定用一个替换那个角色<br />
这是我的一段代码:
\n\n<div className="card-body">\n <p className="card-text">\n {lyrics.lyrics.lyrics_body.replace(/(\\r\\n|\\n|\\r)/gm, "<br />")}\n </p>\n</div>\nRun Code Online (Sandbox Code Playgroud)\n\n这显然不会换行,但它只会<br />直接渲染到段落中,这不好
我对 JSX 以及你能做什么和不能做什么所以我有点迷失在这里,我尝试过/n或%0D%0A我在研究过程中发现的任何其他东西但没有任何效果
我还尝试通过添加这样的变量来连接:
\n\nconst newLine = <br />;\n\n<div className="card-body">\n <p className="card-text">\n {lyrics.lyrics.lyrics_body.replace(/(\\r\\n|\\n|\\r)/gm, `${newLine})}\n </p>\n</div>\nRun Code Online (Sandbox Code Playgroud)\n\n但这只是渲染成这样:
\n\nThey say "Oh my god I see the way you shine"[object Object]Take your hand, my dear
TLDR:\n如何在有 \xe2\x86\xb5 的地方插入换行符?如果没有 JSX 表达式,我就完蛋了。
\n\n我想我需要更多地了解 JSX
\n你可以用 CSS 避免这整个考验:
.card-text {
white-space: pre-line;
}
Run Code Online (Sandbox Code Playgroud)
这将导致文本在换行符处换行(并且在必要时)。
只需按原样渲染歌词正文:
<p className="card-text">
{lyrics.lyrics.lyrics_body}
</p>
Run Code Online (Sandbox Code Playgroud)
小智 5
也许分割字符串并映射它是一个想法?
lyrics.lyrics.lyrics_body.split(/\r\n|\n|\r/gm).map(line => {
return <React.Fragment>{line}<br /></React.Fragment>
})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4246 次 |
| 最近记录: |