study/errorLog

[errorLog] Query data cannot be undefined. Please make sure to return a value other than undefined from your query function

ํ•ด๋ฆฌHarry 2024. 5. 14. 13:34

๐Ÿšจ ๋ฐœ์ƒํ•œ ๋ฌธ์ œ์™€ ์ƒํ™ฉ

๊ฒŒ์‹œ๊ธ€ ์ข‹์•„์š” ๊ตฌํ˜„์ค‘ ๋ฐœ์ƒํ•œ ๋ฌธ์ œ.

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-์—๋Ÿฌ