仅更改动态输入字段中的一个特定值
Change only one specific value from dynamic input field
我需要一些帮助。
所以我有:
data.map( (doc) => {
return (
<div>
<div> {doc.name}</div>
<div> {doc.age}</div>
</div>
)
})
这会将一些数据从 Firebase Firestore 迭代到网页中。
然后有一个输入字段可以更改年龄。
const [age, setAge] = useState(1);
const handleSubmitAge = async () => {
const ageRef = doc(db, "user", "docID")
await updateDoc(ageRef, {
age : age
});
}
.....
<div>
<TextField
value={age}
onChange={ e => setAge(e.target.value)}
/>
<Button onChange={handleSubmitAge}>
Submit Age
</Button>
</div
如果我想更改 doc.age,我该怎么做?如果我只是像上面这样写,那么如果有10个名字,所有的名字都会有相同的年龄。
我如何在那个“年龄”输入字段中引用“docID”,以便只有一个特定的年龄被更新到一个特定的人(姓名)?
解决方案:
谢谢 Frank van Puffelen 先生。
首先,我需要访问 data.map( (doc) => ... ) 中每个文档的文档 ID。当我们从 Firestore
获取数据时,我们可以更早地做到这一点
async () => {
const q = query(collection(db, "collectionName"), where("category", "==", `${some condition here}`));
const querySnapshot = await getDocs(q);
querySnapshot.forEach((doc) => {
setData(querySnapshot.docs.map((doc) => ({...doc.data(), id:doc.id})))
})
};
id:doc.id 就是给我们文档 ID 的东西。也感谢 PedroTech and Maksim Ivanov 的 youtube 教程展示了如何获取此文档 ID。
我需要一些帮助。
所以我有:
data.map( (doc) => {
return (
<div>
<div> {doc.name}</div>
<div> {doc.age}</div>
</div>
)
})
这会将一些数据从 Firebase Firestore 迭代到网页中。
然后有一个输入字段可以更改年龄。
const [age, setAge] = useState(1);
const handleSubmitAge = async () => {
const ageRef = doc(db, "user", "docID")
await updateDoc(ageRef, {
age : age
});
}
.....
<div>
<TextField
value={age}
onChange={ e => setAge(e.target.value)}
/>
<Button onChange={handleSubmitAge}>
Submit Age
</Button>
</div
如果我想更改 doc.age,我该怎么做?如果我只是像上面这样写,那么如果有10个名字,所有的名字都会有相同的年龄。
我如何在那个“年龄”输入字段中引用“docID”,以便只有一个特定的年龄被更新到一个特定的人(姓名)?
解决方案:
谢谢 Frank van Puffelen 先生。
首先,我需要访问 data.map( (doc) => ... ) 中每个文档的文档 ID。当我们从 Firestore
获取数据时,我们可以更早地做到这一点async () => {
const q = query(collection(db, "collectionName"), where("category", "==", `${some condition here}`));
const querySnapshot = await getDocs(q);
querySnapshot.forEach((doc) => {
setData(querySnapshot.docs.map((doc) => ({...doc.data(), id:doc.id})))
})
};
id:doc.id 就是给我们文档 ID 的东西。也感谢 PedroTech and Maksim Ivanov 的 youtube 教程展示了如何获取此文档 ID。