【问题标题】:Maintaining text format when passing around data传递数据时保持文本格式
【发布时间】:2019-01-09 06:10:58
【问题描述】:

我的数据库中存储了包含换行符的文本(段落)。当我向数据库发出 GET 请求时,信息会以对象的形式返回。带有文本的部分变成了一个大段。有谁知道在传递文本时如何保持换行符和文本格式?

【问题讨论】:

  • 您可以将 api 中的数据作为段落数组传递,并在渲染数组的每个元素后使用 \n 符号换行

标签: node.js reactjs postgresql


【解决方案1】:

您可以将换行符拆分为一个数组,并使用 map 函数以您想要的方式显示和设置样式。这是一个简单的解决方案,可以根据您的需要进一步修改:

const myObj = {
  text: 'Very large text\nLine1\nLine2\nLine3'
};
const text = myObj.text.split('\n');

class App extends React.Component {
  render() {
    return ( 
        <div>
        {text.map((t, i) => <div key={i}>{t}</div>)}
        </div>
      );
  }
}

ReactDOM.render( < App / > ,
  document.getElementById('root')
);
<script src="https://unpkg.com/react@16/umd/react.development.js" crossorigin></script>
<script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js" crossorigin></script><div id="root" />

【讨论】:

  • 嗨哈米德。 '\n' 换行符当前未存储在数据库中,但它显示换行符?基本上我的前端有一个大的文本区域输入。用户可以粘贴文本(如文章正文)并保存。它将与所有段落间距一起保存在数据库中。但是没有实际的 '\n' (或者至少它没有显示?)。因此,当我从数据库中提取数据时,它会以一大段的形式返回到前端。我是否需要对用户粘贴的文本做一些事情,使其具有换行符等?或者有什么方法可以存储任何粘贴为 html 的内容?
  • 如果用户实际在文本区域的某处按下回车,那么一旦您将数据保存在数据库中,就会存储换行符。否则它将被视为一个大的单个段落。 Textarea 无法存储 HTML 内容,因此它会删除所有格式。您可以用 Quill (quilljs.com) 替换您的 textarea,它允许您保存和加载 HTML 内容(有一些限制)。您也可以参考有关 textarea 中换行符的讨论:stackoverflow.com/questions/863779/…
猜你喜欢
  • 2016-12-28
  • 1970-01-01
  • 2013-02-09
  • 2019-12-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-10
相关资源
最近更新 更多