我正在使用 React 和 Firebase 制作一个类似 twitter 的小应用程序,并且遇到了一个小错误。现在,我正在使用 UseEffect 在页面加载时显示我的 firebase 集合,然后将推文映射到页面。然而,这些推文只有在我开始打字后才会显示。这是我拨打电话的方式。
useEffect(() => {
let newArray = []
const getTweets = async () => {
firebase.firestore().collection('tweet').orderBy('date',
'desc').onSnapshot((singleTweet) => {
singleTweet.forEach((element) => {
newArray.push(element.data())
})
})
showLoader()
setTweets(newArray)
if (newArray) {
hideLoader()
}
}
getTweets();
}, [])
const addTweet = (text) => {
const newTweets = {}
newTweets.content = text;
newTweets.date = new Date().toISOString()
newTweets.userName = user.displayName
newTweets.photoURL = user.photoURL
setTweets([newTweets, ...tweetList])
firebase.firestore().collection('tweet').add(newTweets)
}
const submitTweetHandler = (event) => {
event.preventDefault()
addTweet(inputText)
setInputText('')
}
这就是我绘制集合的位置:
{tweetList.map((tweet, index) => (<Tweet key={index} tweet={tweet} />))}
心有法竹
拉丁的传说
相关分类