如何显示多个输入元素,等于选定的数字 (React.js)
How Do I Display a Number of Input Elements, Equal to a Selected Number (React.js)
我在编写 React 代码时遇到了一些困难。
目标:
你 select,例如,select离子场中的数字 4。这将导致下面出现 4 个(与 selected 数字相同的数量)输入字段。
问题:
我似乎无法让等量的输入出现在我的 DOM.
中
图片:
wrong_result
我的代码:
calc.js
useEffect(() => {
setLevelInputs([LevelInputs, {id: 0}]);
for (let i = 0; i < BarracksLevel.length; i++) {
const number = i
setLevelInputs(...LevelInputs, {id: number});
}
setDisplayBoxes(
<>
{ LevelInputs.map((item, index) => {
return (
<>
<input key={item.id} type="number" onChange={(e) => {setFighterLevels({...FighterLevels, [e.target.value]: e.target.value})}} name={"input_"+item.id} className="TailwindCSS"></input>
</>
);
})}
</>
)
}, [BarracksLevel]);
我可能忽略了一些非常简单的事情,但我认为问问也无妨!
提前致谢,
热情的菜鸟
const { useState, useEffect } = React
const App = () => {
const [count, setCount] = useState(1);
const [inputs, setInputs] = useState([<input />])
useEffect(() => setInputs(
Array.from({length: count}).map(_ => <input />)
), [count])
return <div><input type="number" value={count} onChange={e => setCount(e.target.value)} />{inputs}</div>
}
ReactDOM.render(<App/>, app)
<script crossorigin src="https://unpkg.com/react@17/umd/react.production.min.js"></script>
<script crossorigin src="https://unpkg.com/react-dom@17/umd/react-dom.production.min.js"></script>
<div id=app>
我在编写 React 代码时遇到了一些困难。
目标:
你 select,例如,select离子场中的数字 4。这将导致下面出现 4 个(与 selected 数字相同的数量)输入字段。
问题:
我似乎无法让等量的输入出现在我的 DOM.
中
图片:
wrong_result
我的代码:
calc.js useEffect(() => {
setLevelInputs([LevelInputs, {id: 0}]);
for (let i = 0; i < BarracksLevel.length; i++) {
const number = i
setLevelInputs(...LevelInputs, {id: number});
}
setDisplayBoxes(
<>
{ LevelInputs.map((item, index) => {
return (
<>
<input key={item.id} type="number" onChange={(e) => {setFighterLevels({...FighterLevels, [e.target.value]: e.target.value})}} name={"input_"+item.id} className="TailwindCSS"></input>
</>
);
})}
</>
)
}, [BarracksLevel]);
我可能忽略了一些非常简单的事情,但我认为问问也无妨!
提前致谢, 热情的菜鸟
const { useState, useEffect } = React
const App = () => {
const [count, setCount] = useState(1);
const [inputs, setInputs] = useState([<input />])
useEffect(() => setInputs(
Array.from({length: count}).map(_ => <input />)
), [count])
return <div><input type="number" value={count} onChange={e => setCount(e.target.value)} />{inputs}</div>
}
ReactDOM.render(<App/>, app)
<script crossorigin src="https://unpkg.com/react@17/umd/react.production.min.js"></script>
<script crossorigin src="https://unpkg.com/react-dom@17/umd/react-dom.production.min.js"></script>
<div id=app>