【发布时间】:2020-05-08 08:51:36
【问题描述】:
我有一个 React 项目,它使用 onSnapshot() 侦听器列出来自 Firestore 的数据。
一切正常,但是当我导航到新页面时(该页面也有一个列表,就像上一页上的一样,但数据不同),上一个列表中的数据仍然显示在新页面上。只有当我在某处单击页面时,才会显示新数据。
例子:
/home 显示我的帖子列表。
/friends 显示我的朋友列表。
当我从/home 中点击/friends 时,我仍然可以看到我的帖子列表。
我尝试这样卸载监听器:
useEffect(() => {
const posts = firebase
.firestore()
.collection('posts')
.onSnapshot(function(querySnapshot) {
var postsArray = [];
querySnapshot.forEach(doc => {
postsArray.push(doc.data());
});
setServiceProviderArray(postsArray);
return function cleanup() {
posts()
};
}, []);
但这并不能解决问题。
我正在使用 React-Router-Dom 进行路由。
这里有什么我想念的吗? 非常感谢。
【问题讨论】:
标签: reactjs firebase google-cloud-firestore react-hooks react-router-dom