我正在编写一个代码,通过在主输入标记中输入一个数字,为我创建一个输入标记,数量与我输入的一样多。
现在我想把新输入的值存储到数组中,例如,如果我创建了四个新输入,并想在每个输入中输入一个数字,我最终可以得到一个数组,在每个输入中输入所有这四个数字。
import {useState} from "react";
const MakeNewInput = () => {
const [numInputs, setNumInputs] = useState(null)
const createInputs = () => {
const inputArray = []
for (let i = 0; i < numInputs; i++) {
inputArray.push(<input type="text" key={i}/>)
}
return inputArray
}
return (
<div>
<input
type="number"
value={numInputs}
onChange={(e) => setNumInputs(+e.target.value)}
/>
<button onClick={createInputs}>OK</button>
{createInputs()}
</div>
)
}
export default MakeNewInput;
我尝试了几种方法,他们都有问题,例如,如果我有2个新的输入,我输入这两个数字给他们:524,96,我的数组将是[ 5 , 52, 524 , 9, 96 ]
,但我希望我的数组是[524, 96]
吗
2条答案
按热度按时间gstyhher1#
您可以创建一个新的状态数组:
inputValues
,其中使用createInputs
中的索引作为inputValues
中的索引,这样,您始终知道数组中的输入位置:我添加了一个
useEffect
来根据输入的数量设置默认值。这将防止数组中出现空索引,例如:x一个一个一个一个x一个一个二个x
iezvtpos2#