组件正在使用 UseState 将文本类型的不受控制输入更改为受控错误



我有一个输入组件,当数量增加时,警告"组件正在更改要控制的文本类型的不受控制的输入。输入元素不应从不受控制切换到受控(反之亦然(。决定在组件的生命周期内使用受控或非受控输入元素"显示">

代码:

const [month,setMonth]=useState([])
for (let i = 0; i < amount; i++) {
tabs.push(
<tr key={i}>
<td className="align-baseline">
<input
type="text"
className="form-control"
required
value={month[i]}
onChange={(e) => {
let array = month;
array[i] = e.target.value;
setMonth(array);
}}
/>
</td>
</tr>
);
}

我看到了一些放value = {month [i] || ""}的解决方案,但是当我这样做时,状态只会在我增加数量时更新,即使这样它也不会接受所有数字,例如,如果我键入 122,它只显示 2。

如何获取值并更新状态而不会出错?

<input
type="text"
className="form-control"
required
value={month}
onChange={(e) => {
setMonth(e.target.value);
}}
/>

相关内容

最新更新