开发者问题收集

未处理的拒绝(TypeError):无法读取未定义的属性“map”?(React-firebase)

2020-09-26
728

我所做的事情有什么问题,我正在获取集合快照,循环遍历它并将其推送到状态,然后使用该状态呈现一些列表项 但我收到该错误: 未处理的拒绝(TypeError):无法读取未定义的属性“map”

代码:

const [books, setBooks] = useState([]);
db.collection('books').get()
   .then(snapshot => snapshot.forEach(doc => {
      setBooks([...books, doc.data()])
}))

return (
  books.map(return some jsx)
)
1个回答

您执行了太多次 setState 。为什么不简单地执行一次?

const [books, setBooks] = useState([]);
db.collection('books')
  .get()
  .then(snapshot => snapshot.map(s => s.data())
  .then(data => setBooks(data))
}))

return (
  books.map(b => <div>{book stuff here}</div>)
)
Sam R.
2020-09-26