【发布时间】:2020-05-24 05:44:12
【问题描述】:
我正在从 firebase 获取一个文档集合,然后将它传递给一个状态,所以当它更新时,react 会重新渲染它。
const [posts, setPosts] = useState([])
const fetchPosts = () => {
firebase.firestore().collection('posts').get()
.then(snap => {
snap.docs.forEach(doc => {
setPosts([...posts, doc.data()])
console.log(doc.data())
})
})
}
useEffect(() => {
fetchPosts()
}, [])
我也将此状态传递给其他组件,因此它们也使用更新的状态重新渲染
但是 react 只是渲染集合的第一个文档并在控制台中给出错误:'每个孩子都应该有一个唯一的 key prop'。我的每个 doc 对象内部都有一个唯一的 id,我将其作为每个帖子的键传递
<div className="posts section">
{posts.map(post=>{
return <Link to={'/posts/'+post.id}><PostCard post={post} key={post.id} /></Link>
})}
</div>
【问题讨论】:
标签: reactjs firebase google-cloud-firestore react-hooks