【发布时间】:2021-11-07 06:30:27
【问题描述】:
我有一个屏幕列出“任务”,它们都是相同的组件<TaskItem>,只是发送给它们的道具不同。
每个 <TaskItem> 都是通过迭代 Firestore 数据库集合中的文档来创建的。
我想在个人被点击时访问他们的 doc().id。
我的问题是:如何在渲染后访问每个特定 <TaskItem> 的 doc().id?这个 doc().id 在创建时是否以某种方式附加或存储在 <TaskItem> 中?
tasks1 从后端检索任务并创建一个数组以使用map on
db.collection('users').doc(id).collection('tasks').onSnapshot((snapshot)=>{
const tempTasks = [];
snapshot.forEach(
doc => {
tempTasks.push(doc.data());
}
)
setTasks(tempTasks);
});
Firestore 数据库结构
db.collection('users').doc(id).collection('tasks').doc().id
我在“任务”上使用map 进行迭代,并为数据库中的每个“任务”项创建一个<TaskItem>。每个存储的 doc().id 是随它一起存储还是我必须手动访问它?
<View style={styles.tasks}>
{tasks1.map((task) => {
return (
<View style={{ margin: 4}}>
<TaskItem
//PROPS
notes={task.notes}
reminder={task.reminder}
name={task.name}
assigned={task.assigned}
tagName = {task.tag}
profileImage={task.profileImage}
color={task.color}
changeModal={() => changeStateHandler()}
onPress={()=>setTagClicked(!tagClicked)}
/>
</View>
);
})}
</View>
【问题讨论】:
标签: javascript reactjs firebase react-native google-cloud-firestore