๐จ ๋ฐ์ํ ๋ฌธ์ ์ ์ํฉ
๊ฒ์๊ธ ์ข์์ ๊ตฌํ์ค ๋ฐ์ํ ๋ฌธ์ .
const { data: likedId } = useQuery({
queryKey: ['liked', id, loginUser],
queryFn: async () => {
// like ํ
์ด๋ธ์์ feedID, ๋ก๊ทธ์ธํ userId์ ์ผ์นํ๋ ๋ฌธ์ ์๋์ง ํ์ธ
// ! boolean์ด๋๊น ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฌธ์๋ ํ๋๋ฟ์ด๋ค
// ๋ฌธ์๊ฐ ์์ผ๋ฉด true, ์์ผ๋ฉด false.
const q = query(
collection(db, 'like'),
where('feedId', '==', id),
where('userId', '==', loginUser)
)
const querySnapshot = await getDocs(q)
const likeId = querySnapshot.docs.map((doc) => doc.id)[0]
return likeId
},
})
๐ค ๋ฌธ์ ์ ์์ธ ํ์ ํ๊ธฐ
React-Query(Tanstack-Query)์์ useQuery๋ฅผ ์ฌ์ฉํ๋ฉด์ ๋ฌธ์ ๊ฐ ์๊ธด ๊ฒ ๊ฐ์๋ค. ๊ทธ๋์ ๋จผ์ ์ฝ์์ ๋ฌ ์๋ฌ ๋ด์ฉ์ ์ฝ์ด๋ณด์๋ค. ๋ด์ฉ์ ์์ฝํด๋ณด๋ฉด ์ฟผ๋ฆฌ ๋ฐ์ดํฐ๋ฅผ ์ฐพ์ ์ ์์ / undefined ๋ง๊ณ ๋ค๋ฅธ ๊ฐ์ ๋ฆฌํดํ๊ฒ ํด์ผํ๋ค / ๋ฌธ์ ๊ฐ ์๊ธด ์ฟผ๋ฆฌํค ์๋ค.
๋ฌธ์ ์ ์์ธ์ ์ฐพ์๋ณด๋ฉด ๊ฒฐ๊ณผ useQuery์์ ๋ฆฌํดํ๋ ๋ฐ์ดํฐ๊ฐ Promise๊ฐ ์๋๊ธฐ๋๋ฌธ์ ์๊ธฐ๋ ์๋ฌ๋ผ๋๊ฑธ ๋ฐ๊ฒฌํ๊ฒ ๋์๋ค. likedId์์ [0]์ผ๋ก ๊ฐ์ ์ง์ ํด์ค๊ฒ์ด ๋ฌธ์ ๊ฐ ๋๊ฒ๊ฐ๋ค.
๐โ๏ธ ์๋ํด๋ณธ ๋ฐฉ๋ฒ
const likeId = querySnapshot.docs.map((doc) => doc.id)
๊ทธ๋์ ์ฝ๋๋ฅผ ์์ ํ๊ณ ํน์ ํ ๊ฐ์ ๋ฆฌํดํด์ฃผ๋๊ฒ ์๋๋ผ ๊ทธ๋ฅ ๊ฐ๊ณตํ๊ธฐ ์ ์ ๊ฐ์ ๋ฆฌํดํด์คฌ์.
โ ๊ฒฐ๋ก
์ค๋ฅ ํด๊ฒฐ!
์ฐธ๊ณ ๋งํฌ
https://velog.io/@paperkeem/React-Query-Query-data-cannot-be-undefined-์๋ฌ