如何使用whiteSpace:在React上'预先包装'

Sib*_*ini 11 css whitespace jsx reactjs react-jsx

如何使用whiteSpace样式:在React上'预包装'

我有一个div需要使用带空格的格式呈现文本

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

      keep spaces
   </div>
}
Run Code Online (Sandbox Code Playgroud)

Ale*_* T. 14

JSX塌陷空格,在这种情况下,你可以使用dangerouslySetInnerHTML像这样

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() } 
    />
  }
});
Run Code Online (Sandbox Code Playgroud)

注意:对于新版本的React/JSX,无需使用dangerouslySetInnerHTML

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

      keep spaces


      keep spaces
   `}
  </div>
);

ReactDOM.render(<App />, document.getElementById('root'));
Run Code Online (Sandbox Code Playgroud)
<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 Online (Sandbox Code Playgroud)

  • 情况似乎不再如此。我能够只添加 CSS 属性并且它起作用了。不需要`dangerouslySetInnerHTML`。 (2认同)
  • @inostiam谢谢,添加了说明。 (2认同)
  • +100精神打击...这个答案比目前得到的更多。 (2认同)