好的,我有一个问题,为什么当有人点击多个选择答案时,它会存储所有的值,而不是只存储最后一个值?
所以假设我只有两个选择

然后我点击选项1,但在最后一分钟决定改为选项2,为什么它同时保存数据库中的数据/信息?

它在桌子上印着这样的图案:

如您所见,它确实打印了这两所学校("colegios"),因为我在“选择”中单击了这两所学校。
这是相关的代码片段,如果需要完整的代码,请告诉我。
const [idType1, setidType1] = useState([]);
const register = (e) => {
e.preventDefault();
const docRef = db.collection('usuarios').doc(user.uid).collection('estudiantes').doc();
docRef.set({
name: firstName + " " + lastName,
school: idType1,
grade: idType2,
uid: docRef.id,
}).then((r) => {
history.push("/Inicio");
})
}
<select className = "crear_escuela" onChange = {(e) => setidType1([...idType1, e.target.value])} required>
<option value="" disabled selected hidden>Seleccione...</option>
<option value = 'Academia Internacional de Boquete' label = 'Academia Internacional de Boquete' />
<option value = 'Academia Internacional de David' label = 'Academia Internacional de David' />
</select>发布于 2021-09-16 01:19:06
问题在onChange = {(e) => setidType1([...idType1, e.target.value])中。
每次select中的值发生变化时,都会将所选值添加到idType1中。考虑到这是一个下拉列表,您通常希望用新选择的值替换idType1的现有值。
所以:
onChange = { (e) => setidType1(e.target.value) }https://stackoverflow.com/questions/69200898
复制相似问题