【发布时间】:2020-09-28 20:40:48
【问题描述】:
每当列表更新时,它会形成另一个数组,添加到前一个数组中,我怎样才能让它只返回一个包含更新信息的数组
下面是代码
useEffect(() => {
firebase.database().ref('/users/' + '/messages/').orderByChild('createdAt').on('value', function(snapshot) {
snapshot.forEach(function(userSnapshot) {
const id = userSnapshot.key;
const userData = userSnapshot.val();
setId(id);
messages.push(userData);
});
});
setMessages(messages);
}, [messages])
在体内的使用
<ul>
{messages.map(function(item){
return (<li key={id}>{item.displayName}: {item.text}</li>)
})}
</ul>
当列表更新一次时,它又返回了两个列表,所以新的列表变得非常非常长
【问题讨论】:
-
我认为是因为 .push(),有没有其他替代方法
标签: javascript arrays reactjs react-native firebase-realtime-database