javascript - 在 React 中将文本分成多行

标签 javascript html reactjs

我在数组中保存了更多字符串。我想做的是将鼠标悬停在图标上时显示它们,每个图标都位于单独的行上。 到目前为止我尝试过的:

addMessages = () => {
   const text = [];

   //add strings in the array

   return text.join("<hr/>");

}

render() {
   const showWhenHover = this.addMessages();

   return (
            <ActionBar popover={<div> {showWhenHover}</div>}
               <div>
                   <Icon type="myIcon"/>
               </div>
           </ActionBar>
          );
      }
}

当我将鼠标悬停在图标上时,它会显示消息,但不是每条消息都在单独的行上,而是全部在一行中,如下所示:

text1</hr>text2</hr>text3

不是 <hr/>在这种情况下必须使用什么?谢谢

最佳答案

您的函数 addMessage 生成字符串而不是 html 标记。

一种解决方案是使用模板文字allow multiline strings 。另一件事是确保文本包含在已定义尺寸的元素内,或者尺寸足够大以使文本可以转到下一行。

const genText = () => `
  Text with lots of
  spaces within 
  it blah blah blah
  blah
`

const Comp = () => <div style={{width: 100, height: 200}}>{genText()}</div>

ReactDOM.render(<Comp />, document.getElementById('app'))
<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="app"></div>

关于javascript - 在 React 中将文本分成多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44649128/

相关文章:

javascript - 初学者挑战 : Sum all even numbers 1-1000. 是我的基本原理错误还是我的代码错误?

Javascript - 揭示对象和变量范围

reactjs - 我应该在带有 SSL 的 Nginx 服务器上为 React 应用程序启用 Gzip 吗?

javascript - 使用 JSS 合并类而不是覆盖

javascript - 什么相当于 sinonjs 中的 jasmine.createSpy().and.callFake(fn)

javascript - 为什么我们在使用方法之前添加 req.user 对象?

javascript - AngularJS ng-repeat 用于动态子 json 数组

html - Image Box-阴影定位

javascript - 如何使用 Vue.js 显示和隐藏 Bootstrap 微调器?

reactjs - 在 Datepicker (material-ui) 上更改格式日期