【问题标题】:How can I render my component X amount of times based on a selector?如何根据选择器渲染组件 X 次?
【发布时间】:2019-08-11 06:57:11
【问题描述】:

我有一个“选择”组件,可以选择我想在下面显示的表单数量。 表单是单个组件,我想重用它。它确实需要有一个独立的状态,所以我可以为同一个表单(字段数组)使用多少个字段。请提供有关如何多次渲染此组件的任何提示?

const indexes = [1, 2, 3];

const MyComponent = () => {
  const [numberOfUnits, setNumberOfUnits] = useState(1);

  const Form = () => <p>my form</p>;

  return (
      <select onChange={e => setNumberOfUnits(e.target.value)}>
        {indexes.map(index => (
          <option key={index} value={index}>
            {index}
          </option>
        ))}
      </select>

    //Here I should render X (numberOfUnits) amount of times of the Form component 
  );
};

【问题讨论】:

标签: javascript reactjs


【解决方案1】:
import React, { useState } from "react";
import ReactDOM from "react-dom";

const indexes = [1, 2, 3];

const MyComponent = () => {
  const [numberOfUnits, setNumberOfUnits] = useState(1);

  const Form = () => <p>my form</p>;
  const formElements = [];
  for (let i = 0; i < numberOfUnits; i++) formElements.push(<Form />);

  return (
    <React.Fragment>
      <select
        onChange={e => setNumberOfUnits(e.target.value)}
      >
        {indexes.map(index => (
          <option key={index} value={index}>
            {index}
          </option>
        ))}
      </select>
      {formElements}
    </React.Fragment>
  );
};
const rootElement = document.getElementById("root");
ReactDOM.render(<MyComponent />, rootElement);

【讨论】:

    猜你喜欢
    • 2018-04-08
    • 1970-01-01
    • 2021-09-19
    • 2021-02-25
    • 2021-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多