52ky 发表于 2022-5-4 09:13:17

React 中的简单 for 循环需要标识符

问题
我是新来的反应并尝试实现一个简单的for循环,如另一个stackoverflow帖子所示。但是,我似乎无法让它工作。我只想运行组件 5 次(或任意次数),而不是映射到数组或类似的。


例如:

index.js:
import React, { Component } from 'react';
import { render } from 'react-dom';
import './style.css';
import Test from './test';

class App extends Component {
constructor() {
    super();
    this.state = {
      name: 'React'
    };
}

render() {
    return (
      <div>
      for (var i=0; i < 5; i++) {
      <Test />
    }
      </div>
    );
}
}

render(<App />, document.getElementById('root'));
测试.js
import React from "react";

export default function Test() {
return (
    <p>test</p>
);
}
有人可以告诉我哪里出错了吗?我尝试过复制另一个 stackoverflow 帖子并尝试过 test() 。我仍然收到此错误:

感谢您的帮助。

回答
JSX 将接受任何有效的 JavaScript 表达式、声明式编程和命令式编程,也许这个源代码可以帮助你。您可以创建一个声明性解决方案,正如其他同事所展示的(以及最佳解决方案),但也可以将您的命令式解决方案包装到一个函数或方法中。
const Test = () => {
return (
    <p>test</p>
);
}

class App extends React.Component {
constructor() {
    super();
    this.state = {
      name: 'React'
    };
}

createElements = () => {
    const elments = [];
    for (var i=0; i < 5; i++) {
      elments.push(<Test />)
    }
    return elements;
}

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

// Render it
ReactDOM.render(
<App />,
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>



页: [1]
查看完整版本: React 中的简单 for 循环需要标识符