【问题标题】:JSX extra white space when using Split Map使用 Split Map 时的 JSX 额外空白
【发布时间】:2020-02-17 21:23:53
【问题描述】:

如何删除此空白?正如您从我的代码中看到的那样,“描述”应该在单独的一行中,并且文本应该在它的下方。 此问题仅发生在数据库中的某些字符串上,但 AFAIK 数据库中的字符串本质上都是相同的 - 不同的消息但完全相同的格式。

另外,如果我在<Text> 组件内仅显示{this.state.info},则布局符合预期。 它只与 split 和 map 函数中断。

预期结果:

我正在尝试在 JS React 中拆分文本 this.state.info。文本包含“||”表示换行符的分隔符。

例如,“this||text”应该是:
“这个
文字”

这是我的代码。它在 '||' 上分裂并将每个段放在段落中,然后还将文本中的字符串<p>(如果有)替换为空字符串。

            <Text fontStyle={TEXT_STYLE.BOLD}>Description</Text>
            <div
              className="textMinimumHeight"
              style={{minHeight: "111px"}}>
              <Text>
                {this.state.info.split('||').map((item, i) => {
                  return <p key={i}>{item.replace('<p>', '')}</p>;})
                }
              </Text>
            </div>

感谢您的帮助!

【问题讨论】:

  • 我认为替换关闭的p 标签会很有用:.replace('&lt;/p&gt;', '')
  • @Taki 谢谢你的建议,不幸的是问题仍然存在:(
  • 你能告诉我们这是产生的标记吗?听起来拆分文本的部分被视为display: inline-block 之类的东西,并且当任何文本行足够长时,它将转到标题下方的下一行。您应该在浏览器工具中检查带有文本的元素以及包含它们的任何元素,以查看是否在某处应用了 inline-block 样式。

标签: javascript html reactjs jsx


【解决方案1】:

您可以尝试这样做:

1. <Text fontStyle={TEXT_STYLE.BOLD}>{`Description\n`}</Text>

2. <Text fontStyle={TEXT_STYLE.BOLD}>Description{`\n`}</Text>

or just put description inside <p> tag

3. <Text fontStyle={TEXT_STYLE.BOLD}><p>Description</p></Text>

【讨论】:

  • 原来问题出在我的直接父标签上,这是一个容器组件,当有超过 1 个子标签时出现故障。我把“描述”放在父组件之外,问题就解决了。您的建议有助于解决问题,谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多