【发布时间】:2021-09-14 21:24:11
【问题描述】:
我的 useEffect() 函数正在从 firebase 检索数据,并且只在屏幕上呈现一个 <TaskItem/>。
我提取数据并将其存储在我的状态下的 temptasks 中,然后使用 map 渲染以显示每个项目的组件。
我的后端 firebase 中有五个项目,使用控制台日志我可以看到它们都已收到,但为什么只有第一个呈现。重新渲染页面显示所有 5 个。
useEffect(() => {
if(userId!=='' && id !== userId)
setId(userId);
if (id !== '') {
let counter = 0;
db.collection('users').doc(id).collection('tasks').onSnapshot((snapshot)=>{
const tempTasks = [];
snapshot.forEach(
doc => {
var newData = doc.data();
newData.id = doc.id;
tempTasks.push(newData);
setTasks(tempTasks);
}
)
setTasks(tempTasks);
});
}
},[id, userId]);
<View style={styles.tasks}>
{temptasks.map((task) => {
return (
<View style={{ margin: 4}}>
<TaskItem/>
</View>
);
})}
</View>
【问题讨论】:
标签: javascript reactjs firebase react-native