在 React 中创建一个循环 HTML 元素

Creating a looped HTML element in React

我对 React 比较陌生,我看了很多地方,但找不到专门处理这个问题的方法。我检查了以前的答案。

我正在尝试让我的应用程序循环遍历一个数组,并随数组一起打印一条语句。

var user = ["Kevin", "Kyle", "Kylian"];

var Hello = <h1>
            Hello, {user}!
            </h1>

class App extends Component {
  render() {
    for(var i=0;i<user.length;i++){
    return Hello;
    }
  }
}

export default App;

输出:

Hello, KevinKyleKylian!

预期输出:

Hello, Kevin!
Hello, Kyle!
Hello, Kylian!

如您所见,出于某种原因,循环不会连续 return 整个输出,并且在 {user} 的用户迭代之后,它只会打印 {user} 直到数组结束。为什么会这样?我怎样才能避免这种情况?

可能是因为这个位:

var Hello = <h1>
            Hello, {user}!
            </h1>

在这种情况下,'user' 指的是整个数组,而不仅仅是该数组的特定元素。

一般来说,如果您在 React 中动态构建元素,最好将它放在一个单独的函数中而不是 render 方法中,我觉得这样更简洁一些。所以像这样:

getUsers() {
  let userList = [];
  for (let i=0; i<user.length; i++) {
    userList.push(<div>Hello, {user[i]}</div>);
  }
  return userList;
}

render() {
  return(
    <div>
      {this.getUsers()}
    </div>
  );
}