Today, What I learned?
ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉฐ ์นดํ ๊ณ ๋ฆฌ์ ๋ฐ๋ผ์ React Query์ useQuery๋ฅผ ํตํด ๋ค๋ฅธ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ ๋ถ๋ถ์ ์งํํ๋ฉฐ
์ด๋ค ๋ฐฉ์์ผ๋ก ๊ฒฐ๊ณผ๋ฌผ์ ๋ง๋ค์๋์ง ๊ธฐ๋กํด ๋ณธ๋ค.
ํผ๊ทธ๋ง ์์ผ๋ก ๋ง๋ค์ด์ผ ํ๋ ๋ถ๋ถ์ด๋ค.
๊ฐ ์ง์ญ์ ํด๋ฆญํ๋ฉด ํด๋น ์ง์ญ์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์์ผ ํ๋ ๋ถ๋ถ!
์ผ๋จ ๋ฒํผ์ ํด๋ฆญํ ๋๋ง๋ค ๊ฐ ์ง์ญ์ ์ฝ๋๋ฅผ API์ params ๊ฐ์ผ๋ก ๋๊ฒจ์ฃผ์ด์ผ ํ๋ค.
๊ทธ๋์ API ํจ์์์๋ ์๋์ ๊ฐ์ ๋ฐฉ์์ผ๋ก params๋ฅผ ๋ฐ์์ค๊ธฐ๋ก ํ๋ค.
export const getLocalPopular = (params) => {
const [_, category] = params.queryKey;
return fetch(
`${BASE_URL}/boxoffice?service=${API_KEY}&ststype=month&date=${getDateString()}&catecode=GGGA&area=${
category ?? 11
}`
)
...
};
refetch ์ฌ์ฉํด ๋ณด๊ธฐ?
์ฒ์์๋ ์ง์ญ ๋ฒํผ๋ง๋ค useQuery์ refetch
๋ฅผ ์คํํ๊ฒ ํ๋ฉด ์ด๋จ๊น? ์ถ์๋๋ฐ ๋ง ๊ทธ๋๋ก ํจ์น๋ฅผ ๋ค์ ํด์ค๋ ๊ฒ์ด์๊ณ ..
params๋ฅผ ๋๊ฒจ์ค ์ ์์๋ค ใ
ใ
..
const { data, refetch } = useQuery(['Local'], getLocalPopular);
๊ทธ๋ฆฌ๊ณ ํด๋ฆญํ์ง๋ ์์๋๋ฐ ๊ณ์ ์ฝ์์ด ์ฐํ๋ ๊ฒ์ ๋ณด๊ณ ์ด๊ฑด ์๋ ๋ฐฉ๋ฒ์ด๋ผ๋ ๊ฒ์ ๊นจ๋ซ๊ณ ..
์ต์ข ์ ์ผ๋ก ์๋์ ๊ธ์ ์ฐธ๊ณ ํด์ ์์ฑํ ์ฝ๋๋ ์ด๋ ๋ค.
https://stackoverflow.com/questions/67796103/refetch-with-different-data-react-query
์์ฑ ์ฝ๋
useState๋ฅผ ์ด์ฉํด์ ์ ์ฅํ ์นดํ ๊ณ ๋ฆฌ์ ๊ฐ์ useQuery์ params๋ก ๋๊ฒจ์ค๋ค.
const [category, setCategory] = useState(11);
const { data, isLoading } = useQuery(['Local', category], getLocalPopular);
๋ฒํผ ์์ญ์ state ๋ถ๋ถ์ props๋ก ๋๊ฒจ์ฃผ์ด, ์๋์ ๊ฐ์ด ๋ฒํผ ํด๋ฆญ ์ setCategory()
ํจ์์ ์ฝ๋๊ฐ์ ๋ค์ ์ค์ ํ ์ ์๋๋ก ํ๋ค.
const handleLocalButton = (code) => {
setCategory(code);
};
...
{localKeys?.map((local) => (
<LocalButton
...
onPress={() => handleLocalButton(local?.code)}
>
...
</LocalButton>
))}
๊ทธ๋ผ category ๊ฐ์ด ๋ณ๊ฒฝ๋ ๋๋ง๋ค useQuery์ ์ฟผ๋ฆฌํจ์๊ฐ ์ฌ์คํ๋๋ค!
๋ นํ๊ฐ ์๋ชป๋ ๊ฒ ๊ฐ์ง๋ง ์ ์คํ๋๋ค. ๐
useQuery๋ก params ๋๊ฒจ์ฃผ๋ ๋ฐฉ๋ฒ์ ์ ๋๋ก ์จ๋ดค์ผ๋ ๋ค์์๋ ์ ํ์ฉํ ์ ์์ง ์์๊น!..
'๐ Studying > ๐ TIL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๊ธฐ์กด ๋ฆฌ์กํธ ํ๋ก์ ํธ์ TypeScript ์ ์ฉํ๊ธฐ (0) | 2023.01.16 |
---|---|
[ReactNative] ์ ํ ํผ์นจ ๋ฒํผ๊ณผ ์์ญ ๋ง๋ค๊ธฐ (0) | 2023.01.13 |
[ReactNative] xml2js ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก XML to JSON ํ๊ธฐ (0) | 2023.01.09 |
[ReactNative] ์ค์ฒฉ ๋ผ์ฐํฐ ๋ค๋น๊ฒ์ด์ ์ง์ ํด์ ํ์ด์ง ์ด๋ (0) | 2023.01.06 |
[ReactNative] React-Query๋ก ๋ฌดํ์คํฌ๋กค ์ ์ฉํ๊ธฐ (1) | 2023.01.05 |
Comment