【问题标题】:Having issues getting a newline on my code [duplicate]在我的代码上获取换行符时遇到问题[重复]
【发布时间】:2019-10-23 01:22:33
【问题描述】:

class Test extends React.Component{
state={name: "John", numTimes: 2};

render() {
  let output = ""

  for (let i = 1; i <= this.state.numTimes; i++) {
    let evenOdd = i % 2

    if (evenOdd === 0) {
      output += i + ". Hello " + this.state.name + "!"
    } else {
      output += i + ". Hello " + this.state.name
    }
  }

  return <p>{output}</p>
}

}
ReactDOM.render(<Test /> , document.getElementById("react"));
<div id="react"></div>
<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>

我正在设置一个应用程序,它将通过输入获取用户名以及他们希望其名称显示多少次。

我尝试过对其进行样式设置,使用“\n”和断线将我自己的断线添加到输出中。

render() {
  let output = ""

  for (let i = 1; i <= this.state.numTimes; i++) {
    let evenOdd = i % 2

    if (evenOdd === 0) {
      output += i + ". Hello " + this.state.name + "!"
    } else {
      output += i + ". Hello " + this.state.name
    }
  }

  return <p>{output}</p>
}

我的 for 循环会打印出来!偶数,奇数,所以如果他们为数字做 2,那么期望的结果将是


1.你好约翰
2. 你好约翰!

等等……

我没有收到任何错误,只是...的输出不正确

  1. 你好约翰 2。你好约翰!

【问题讨论】:

  • HTML 中的换行符将是一个 br 标记,但在页面上编写 HTML 而不是尝试使用该格式构建字符串会更有意义。
  • 约翰的 this.state.name 正确。
  • 如果你想要一个换行符,添加一个+ '&lt;br&gt;' - 除非你在容器上使用white-space:pre,否则你的浏览器不会解释\n
  • This answer 在副本中解释得最好
  • 谢谢皮特,我搜索了堆栈但我没有看到。

标签: javascript html css reactjs jsx


【解决方案1】:

试试这个:

 let output = ""
      for (let i = 1; i <= this.state.numTimes; i++) {
        let evenOdd = i % 2
        if (evenOdd === 0) {
          output += i + ". Hello " + this.state.name + "!"+'\n'
        } else {
          output += i + ". Hello " + this.state.name
        }
      }
return <p>{{output}}</p>

【讨论】:

  • 与问题中发布的内容有什么区别?
  • 您好,我看到您在 {{output}} 中添加了一个额外的括号。也许您还有一些代码要添加到它?
  • 是的,我认为这是问题,但我现在正在自己解决它,它不是。循环内部的某些东西导致了问题。
  • 我也是这么想的。循环似乎是这里最大的问题。
  • 你的 this.state.numTimes 值是多少?
【解决方案2】:

你试过了吗?

output += i + ". Hello " + this.state.name + "!"+ {"\n"}

【讨论】:

  • 您好,是的,我在发帖前已经尝试过了。我很抱歉没有把它包括在我的疲惫物品清单中。如有必要,发布更多我的代码可能会更有益?
【解决方案3】:

尝试使用 div 作为它的块级元素,这样它会自动转到下一行

let output= []
  for (let i = 1; i <= this.state.numTimes; i++) {
    let evenOdd = i % 2
    if (evenOdd === 0) {
      output.push(<div key={i}>{i + ". Hello " + this.state.name + "!"}</div>) 
    } else {
      output.push( <div key={i}>{i + ". Hello " + this.state.name}</div>)
    }
  }

【讨论】:

  • div 不能是 p 的子级
  • 这对我的朋友赞不绝口。
猜你喜欢
  • 2018-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-26
  • 2020-09-21
  • 2023-01-10
  • 2021-04-05
相关资源
最近更新 更多