How to use whiteSpace: 'pre-wrap' on React

How can I use whiteSpace: "pre-wrap" style in React

I have a div that should display text using a space format

render() {
   <div style={{whiteSpace: 'pre-wrap'}}
      keep formatting

      keep spaces
   </div>
}
+4
source share
2 answers

JSXcollapses spaces, in which case you can use dangerouslySetInnerHTMLso

var Component = React.createClass({
  content() {
    const text = `
      keep formatting

      keep spaces
   `;

    return { __html: text };
  },

  render: function() {
    return <div 
      style={{ whiteSpace: 'pre-wrap' }} 
      dangerouslySetInnerHTML={ this.content() } 
    />
  }
});

Note. . For new versions of React / JSX there is no need to usedangerouslySetInnerHTML

const App = () => (
  <div style={{ whiteSpace: 'pre-wrap' }}>
    {`
      keep formatting

      keep spaces


      keep spaces
   `}
  </div>
);

ReactDOM.render(<App />, document.getElementById('root'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
<div id="root"></div>
Run code
+5
source

dangerouslySetInnerHTML, .:) , , React, , :

text.split("\n").map((text, i) => i ? [<br/>, text] : text)

, <MultilineText text={text}/>.

CodePen.

whiteSpace , , .

-1

All Articles