简体   繁体   English

如何从 javascript 字符串在 JSX 中换行

[英]How to break line in JSX from javascript string

I have string that I use in JSX我有在 JSX 中使用的字符串

const text = 'Hello World';

and JSX:和JSX:

<p>{text}</p>

How to start new line from World ?如何从World开始新行?

I want result:我要结果:

Hello
World

Using separate HTML elements for each line would be a better approach, this requires some css to ensure there vertically, this could look something like the following:为每一行使用单独的 HTML 元素将是更好的方法,这需要一些 css 以确保垂直放置,这可能类似于以下内容:

 const Example = () => { const text = 'Hello World'; return <p>{text.split(' ').map(t => <span>{t}</span>)}</p>; } ReactDOM.render(<Example />, document.getElementById("react"));
 p { display: flex; flex-direction: column; }
 <script src="https://unpkg.com/react@18/umd/react.production.min.js"></script> <script src="https://unpkg.com/react-dom@18/umd/react-dom.production.min.js"></script> <div id="react"></div>


Otherwise, we can use split(' ') and reduce() to add linebreaks ( <br /> ) between each word.否则,我们可以使用split(' ')reduce() ) 在每个单词之间添加换行符 ( <br /> )。

 const Example = () => { const text = 'Hello World'; const wrapped = text.split(' ').reduce((prev, cur) => [...prev, cur, <br /> ], []) return <p>{wrapped}</p>; } ReactDOM.render(<Example />, document.getElementById("react"));
 p { white-space: pre-line; }
 <script src="https://unpkg.com/react@18/umd/react.production.min.js"></script> <script src="https://unpkg.com/react-dom@18/umd/react-dom.production.min.js"></script> <div id="react"></div>

 <div>{text.split(' ').map( w => <p>{w}</p>)}</div

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM