javascript - Reactjs 使用动态文本值渲染 JSX

标签 javascript reactjs

我正在使用 ReactJS,但我遇到了以下无法找到解决方案的问题:

在渲染之前,我想用任何会强制换行的东西替换两个单词之间的空格。到目前为止,我尝试的一切都不起作用。我已经阅读了 React 文档,它可能暗示我正在处理一个 ' JSX Gotchas '

let strReturn = "\u000A";//<br/>//\u000D

// for example this.props.label could have a value of "Big Bid"

//  now remove space between 'Big Bid' and replace with <br/>
let str = this.props.label.replace(/ /, strReturn );

return <div className={this.props.className}>{str}</div>

目前在屏幕上呈现的内容包括 say Big <br/> 的文本出价。

如果有任何 ReactJS 专家可以告诉我处理这个问题的最佳方法,我将不胜感激。

非常感谢。

最佳答案

有几种方法可以解决这个问题

  1. 使用 dangerouslySetInnerHTML

     let str = this.props.label.replace(/ /, '<br>');
     return <div dangerouslySetInnerHTML={ { __html: str} } />;
    

    Example

  2. 拆分字符串,然后将每一行包装到标签中,例如<p>

     let text = this.props.label.split(/ /).map((text, index) => {
       return <p key={ index }>{ text }</p>
     });
    
    <div>
      { text }
    </div>;
    

    Example

关于javascript - Reactjs 使用动态文本值渲染 JSX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38201965/

相关文章:

javascript - 当 div 在悬停时在其上翻译时如何隐藏文本?

php - mcrypt_encrypt 在包含 ":"(冒号)的字符串上

javascript - 样式化的组件不在 React Iframe 中呈现?

javascript - 把map当做for循环不返回可以吗

javascript - 实现这一步修改它以将值 Prop 传递给Square

javascript - 如何在 React-Router 2.5 中创建动态链接属性

javascript - String.prototype.replace 不会替换 &times 字符

Javascript 更改几个 div 类,选项卡式内容

JavaScript + 将项目添加到下拉列表中

javascript - 为什么必须调用函数两次才能更新钩子(Hook)状态?