javascript - 如何在另一个中创建 react 元素?

标签 javascript reactjs

我构建了一个 React 应用程序,但遇到了一个问题:如何根据 useState 在另一个 React 元素中创建 React 元素?

我创建了一个稍微简化的示例:

import React, { useState } from 'react';
import Square from './square';

function Chart(props) {

    const [counter, setCounter] = useState(0);

    function increment() {
        setCounter++;
    }

    return (
        <div>
            <button onClick={increment()}>More squares</button>
            <div className="container">
                {
                    //I want to create as much <Square number={counter}/>  as the value of counter
                }
            </div>
        </div>
    );
}

export default Chart;

最佳答案

创建它们的数组。例如:

function Chart(props) {
    const [counter, setCounter] = useState(0);

    function increment() {
        setCounter(oldCounter => oldCounter + 1);
    }

    const squares = [];
    for (let i = 0; i < counter; i++) {
      squares.push(<Square number={i} key={i}/>)
    }

    return (
        <div>
            <button onClick={increment}>More squares</button>
            <div className="container">
                {squares}
            </div>
        </div>
    );
}

关于javascript - 如何在另一个中创建 react 元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57279747/

相关文章:

javascript - 如何将值从一个输入字段复制到另一个

javascript - 按日期对 Trello 卡片数组进行排序

javascript - React - 仅当调用 Parent 中的方法时,如何将 Child 中的方法调用到 setState?

reactjs - 使用 React 渲染带有子内容的 Polymer 1.0 元素

reactjs - 将按钮链接到另一个页面

javascript - 如何打开/移动主屏幕左侧的浏览器窗口?

javascript - 在 nextjs 区域之间共享组件的推荐方式?

reactjs - 如何在语义 ui react 中更改背景颜色?

reactjs - 避免在页面文件夹内创建页面

reactjs - 使用 devextreme 和 Material ui @react16 进行服务器端渲染