From d6c7e91fbc43e064556650cfcf204786731fbb54 Mon Sep 17 00:00:00 2001 From: Seungho Date: Sun, 24 Nov 2024 11:41:08 +0900 Subject: [PATCH] =?UTF-8?q?chore(home):=20=ED=99=88=20=ED=99=94=EB=A9=B4?= =?UTF-8?q?=EA=B3=BC=20=EC=BB=A4=EB=84=A5=ED=8A=B8=20=ED=99=94=EB=A9=B4?= =?UTF-8?q?=EC=97=90=EC=84=9C=20=EC=9C=A0=EC=A0=80=20=EB=A6=AC=EC=8A=A4?= =?UTF-8?q?=ED=8A=B8=20=EC=9C=A0=EC=A7=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 개요 - 홈과 커넥트 화면에서 유저의 목록이 새로 매번 바뀐다. 수정사항 - 기존 useFocusEffect와 useCallback의 조합은 그대로 놔두고(notification fetch와 같은 기능 때문에) useRef를 활용한 플래깅 기능을 추가해서 앱을 껐다 키는 경우에만 새로 fetch 하도록 추가한다. --- src/pages/connect/ConnectPage.js | 12 ++++++++---- src/pages/home/HomePage.js | 10 +++++++--- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/src/pages/connect/ConnectPage.js b/src/pages/connect/ConnectPage.js index e4cf3774..fdf1971b 100644 --- a/src/pages/connect/ConnectPage.js +++ b/src/pages/connect/ConnectPage.js @@ -1,4 +1,4 @@ -import React, { useState, useCallback } from "react"; +import React, { useState, useCallback, useRef } from "react"; import { View, Text, @@ -35,10 +35,11 @@ const ConnectPage = () => { const { t } = useTranslation(); const navigation = useNavigation(); + const isInitialMount = useRef(true); const [profileDataList, setProfileDataList] = useState([]); const RANDOM_MEMBER_COUNT = 10; - const cardProfiles = async () => { + const fetchCardProfiles = async () => { try { const response = await getRandomMembersByCount(RANDOM_MEMBER_COUNT); const updatedData = formatProfileData(response.data); @@ -57,7 +58,10 @@ const ConnectPage = () => { useFocusEffect( useCallback(() => { - cardProfiles(); + if (isInitialMount.current) { + fetchCardProfiles(); + isInitialMount.current = false; + } }, []), ); @@ -119,7 +123,7 @@ const ConnectPage = () => { const [isReset, setIsReset] = useState(false); const handleReset = () => { - cardProfiles(); + fetchCardProfiles(); setTotalSelection(null); setIsReset(!isReset); }; diff --git a/src/pages/home/HomePage.js b/src/pages/home/HomePage.js index c9186c5c..4586ebc8 100644 --- a/src/pages/home/HomePage.js +++ b/src/pages/home/HomePage.js @@ -1,4 +1,4 @@ -import React, { useState, useCallback } from "react"; +import React, { useState, useCallback, useRef } from "react"; import { LinearGradient } from "expo-linear-gradient"; import { View, @@ -39,12 +39,13 @@ const HomePage = () => { const { t } = useTranslation(); const navigation = useNavigation(); + const isInitialMount = useRef(true); const [profileDataList, setProfileDataList] = useState([]); const [notificationNumber, setNotificationNumber] = useState(0); const RANDOM_MEMBER_COUNT = 10; - const homeProfile = async () => { + const fetchProfileQueue = async () => { try { const response = await getRandomMembersByCount(RANDOM_MEMBER_COUNT); const updatedData = formatProfileData(response.data); @@ -87,8 +88,11 @@ const HomePage = () => { useFocusEffect( useCallback(() => { + if (isInitialMount.current) { + fetchProfileQueue(); + isInitialMount.current = false; + } getNotificationNumber(); - homeProfile(); }, []), );