У меня есть проект React, который перечисляет данные из Firestore с помощью прослушивателя onSnapshot ().
Все работает нормально, но когда я перехожу на новую страницу (которая также имеет список, аналогичный списку на предыдущей странице, но с другими данными), данные из предыдущего списка по-прежнему отображаются на новой странице. Только когда я нажимаю на страницу где-то, новые данные отображаются.
Пример:
/home
показывает список моих сообщений.
/friends
показывает список моих друзей.
Когда я нажимаю /friends
из /home
, я все еще вижу список своих сообщений.
Я пытался размонтировать слушателя следующим образом:
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 для маршрутизации.
Есть что-то, что я здесь упускаю. Большое спасибо.