[TypeScript] ๋กœ๊ทธ์ธ ์—ฌ๋ถ€์— ๋”ฐ๋ฅธ ํ—ค๋” ๋ณ€๊ฒฝ์— ๋Œ€ํ•œ ๊ณ ์ฐฐ
๐Ÿ“” Studying/๐Ÿ’Œ TIL 2023. 1. 24. 19:50

Today, What I learned? ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ๋กœ๊ทธ์ธ ์—ฌ๋ถ€์— ๋”ฐ๋ผ์„œ ํ—ค๋”๋ฅผ ๋‹ค๋ฅด๊ฒŒ ๋…ธ์ถœํ•ด์•ผ ํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์žˆ๋‹ค. ์ด ๋ถ€๋ถ„์˜ ๋กœ์ง์„ ์–ด๋–ป๊ฒŒ ์งค ๊ฒƒ์ธ ๊ฐ€์— ๋Œ€ํ•œ ์–•์€ ๊ณ ์ฐฐ... ๊ตฌํ˜„ํ•ด์•ผ ํ•˜๋Š” ๋ถ€๋ถ„ ๋กœ๊ทธ์ธ์ด ๋˜์–ด ์žˆ์ง€ ์•Š๋‹ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ๋กœ๊ทธ์ธ ๋ฒ„ํŠผ์ด ๋ณด์ด๋Š” ํ—ค๋”๋ฅผ, ๋กœ๊ทธ์ธ์ด ๋˜์—ˆ๋‹ค๋ฉด ๊ฒ€์ƒ‰๊ณผ ๋งˆ์ดํŽ˜์ด์ง€๋กœ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋Š” ์•„์ด์ฝ˜์ด ์žˆ๋Š” ํ—ค๋”๋ฅผ ๋ณด์—ฌ์ฃผ์–ด์•ผ ํ•œ๋‹ค. ์ฐธ๊ณ ๋กœ ์šฐ๋ฆฌ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ํŒŒ์ด์–ด๋ฒ ์ด์Šค๋ฅผ ํ†ตํ•ด ๋กœ๊ทธ์ธ์ด ์ด๋ฃจ์–ด์ง„๋‹ค. ์ฒซ ์‹œ๋„ ์ฒ˜์Œ์—๋Š” useState๋ฅผ ์ด์šฉํ•ด์„œ isLoggedIn ์ด๋ผ๋Š” boolean ๊ฐ’์˜ ์ƒํƒœ๋กœ ๊ด€๋ฆฌ๋ฅผ ํ•˜๋ ค๊ณ  ํ–ˆ๋‹ค. const [isLoggedIn, setIsLoggedIn] = useState(false); ... useEffect(()=>{ authService.on..

[TypeScript] ๋ฆฌ์•กํŠธ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋กœ ํ”„๋กœ์ ํŠธ ์‹œ์ž‘ํ•˜๊ธฐ
๐Ÿ“” Studying/๐Ÿ’Œ TIL 2023. 1. 20. 21:25

Today, What I learned? ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋กœ ๊ธฐ์กด ํ”„๋กœ์ ํŠธ๋ฅผ ๋ฆฌํŒฉํ† ๋งํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์ƒˆ๋กœ์šด ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ณผ์ •์„ ๊ธ€๋กœ ๋‚จ๊ฒจ๋ณด๋ ค๊ณ  ํ•œ๋‹ค. ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ CRA๋ฅผ ํ†ตํ•ด ์ƒˆ๋กœ์šด ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•œ๋‹ค. npx create-react-app ํ”„๋กœ์ ํŠธ๋ช… --template typescript ์ด ๋•Œ --template์„ ๊ผญ ๋„ฃ์–ด์ฃผ์–ด์•ผ ์ฒ˜์Œ๋ถ€ํ„ฐ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋กœ ํŒŒ์ผ๋“ค์ด ์‹คํ–‰๋œ๋‹ค. --template์—†์ด typescript๋งŒ ๋„ฃ์„ ๊ฒฝ์šฐ์—๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ๋กœ CRA๊ฐ€ ๋˜์–ด์„œ ๋‹ค์‹œ ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•ด์•ผ ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ •์ƒ์ ์œผ๋กœ ๋ช…๋ น์–ด๊ฐ€ ์‹คํ–‰๋˜์—ˆ๋‹ค๋ฉด ์ด๋ ‡๊ฒŒ ts, tsx๋กœ ํŒŒ์ผ๋“ค์ด ๋งŒ๋“ค์–ด์ ธ ์žˆ๊ณ , tsconfig.json๊นŒ์ง€ ๊ธฐ๋ณธ์ ์œผ๋กœ ํฌํ•จ๋˜์–ด ์žˆ์„ ๊ฒƒ์ด๋‹ค. react-app-env.d.ts ? ์ผ๋ฐ˜์ ์ธ ๋ฆฌ์•ก..

[TypeScript] ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ํ—ท๊ฐˆ๋ฆฌ๋Š” ๊ฐœ๋… ์ •๋ฆฌ
๐Ÿ“” Studying/๐Ÿ’Œ TIL 2023. 1. 19. 22:12

Today, What I learned? ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ตํžˆ๋ฉด์„œ ์ƒ๊ฐ๋ณด๋‹ค ์‰ฝ์ง€ ์•Š์Œ์„ ๋งŽ์ด ๋Š๋ผ๋Š” ์ค‘..! ํŠนํžˆ ํ—ท๊ฐˆ๋ฆฌ๋Š” ๋ช‡๋ช‡ ๊ฐœ๋…์„ ์ข€ ์ •๋ฆฌํ•ด๋ณด๋ ค ํ•œ๋‹ค. JS์™€ TS ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๋™์ ํƒ€์ž…. ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋  ๋•Œ, ์ฆ‰ ๋Ÿฐํƒ€์ž„์— ๋ณ€์ˆ˜์˜ ํƒ€์ž…์ด ๊ฒฐ์ •๋œ๋‹ค. ๋ฐ˜๋Œ€๋กœ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋Š” ์ •์ ํƒ€์ž…. ์ปดํŒŒ์ผ ํƒ€์ž„์— ๋ณ€์ˆ˜์˜ ํƒ€์ž…์ด ๊ฒฐ์ •๋œ๋‹ค. ์ด๊ฒƒ์€ ์ฆ‰ ํ”„๋กœ์ ํŠธ๊ฐ€ ์‹คํ–‰๋˜๊ธฐ ์ „์— ๋ฏธ๋ฆฌ IDE์—์„œ ๋ฐœ์ƒํ•  ์˜ค๋ฅ˜๋ฅผ ์•Œ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ! any ํƒ€์ž… any ํƒ€์ž…์€ ๋ชจ๋“  ํƒ€์ž…์„ ํฌํ•จํ•˜๋Š” ํƒ€์ž…์ด๋‹ค. (์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๋ชจ๋“  ๋ณ€์ˆ˜๋„ any ํƒ€์ž…์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.) ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ”„๋กœ์ ํŠธ๋ฅผ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋กœ ๋ฆฌํŒฉํ† ๋งํ•˜๋Š” ๊ฒฝ์šฐ ์ž„์‹œ๋กœ ์‚ฌ์šฉํ•˜๋ฉฐ ์ ์ง„์ ์œผ๋กœ ํƒ€์ž…์„ ์ฐจ์ฐจ ๋ฐ”๊ฟ”๋‚˜๊ฐˆ ๋•Œ ์œ ์šฉํ•˜๋‹ค. ํ•˜์ง€๋งŒ ๋ชจ๋“  ํƒ€์ž…์„ ํฌํ•จํ•œ๋‹ค๊ณ  ํ•ด์„œ ๋ฌด๋ถ„๋ณ„ํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๋ฉด ํƒ€์ž…์Šค..

Redux-toolkit ํˆฌ๋‘๋ฆฌ์ŠคํŠธ๋ฅผ TS๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•˜๋ฉฐ ๋ฐœ์ƒํ•œ ์˜ค๋ฅ˜๋ชจ์Œ (2)
๐Ÿ“” Studying/๐Ÿ’Œ TIL 2023. 1. 18. 10:49

Today What I learned? ์–ด์ œ์— ์ด์–ด ๋ฆฌ๋•์Šค ํˆดํ‚ท ํˆฌ๋‘๋ฆฌ์ŠคํŠธ๋ฅผ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ํ•˜๋ฉฐ ํ•ด๊ฒฐํ•œ ๋งŽ์€ ์˜ค๋ฅ˜๋“ค์„ ๊ธฐ๋กํ•ด ๋ณธ๋‹ค..!! ์–ด์ฐŒ์–ด์ฐŒ ๋ชจ๋“  ์—๋Ÿฌ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ  ์ •์ƒ ์ž‘๋™์ด ๋˜๊ณ  ์žˆ๋‹ค.. ๐Ÿฅบ ๐Ÿšง ๋ฒ„ํŠผ ์ปดํฌ๋„ŒํŠธ์—์„œ ๋ฐœ์ƒํ•œ ์˜ค๋ฅ˜ ํ•ด๊ฒฐ Type '' is missing the following properites from type ~~ Type '' is missing the following properites from type ~~ ์•”๋งŒ ๋ด๋„ ๋ฒ„ํŠผ ์ปดํฌ๋„ŒํŠธ์— ๋‹ค๋ฅธ ํ•จ์ˆ˜ props๊ฐ€ ์—†๋‹ค๋Š” ์–˜๊ธฐ ๊ฐ™๋‹ค. ๊ธฐ์กด ์ฝ”๋“œ๋Š” ์ € ํ•จ์ˆ˜๋“ค ์ค‘ ํ•˜๋‚˜๋งŒ ๋„ฃ์–ด์ฃผ์–ด ๋ฒ„ํŠผ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๊ณตํ†ต์œผ๋กœ ์“ฐ๊ณ  ์žˆ๋Š” ์ƒํƒœ์˜€๊ธฐ ๋•Œ๋ฌธ์— ๊ผญ ๋ชจ๋“  ํ•จ์ˆ˜ props๋ฅผ ๋ฐ›์„ ํ•„์š”๊ฐ€ ์—†์—ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ์„ ํƒ์ ์œผ๋กœ ๋“ค์–ด๊ฐ€์•ผ ํ•˜๋‹ˆ ํƒ€์ž… ์†์„ฑ์—..

Redux-toolkit ํˆฌ๋‘๋ฆฌ์ŠคํŠธ๋ฅผ TS๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•˜๋ฉฐ ๋ฐœ์ƒํ•œ ์˜ค๋ฅ˜๋ชจ์Œ (1)
๐Ÿ“” Studying/๐Ÿ’Œ TIL 2023. 1. 17. 22:04

Today, What I learned? ์ผ์ฐจ์ ์œผ๋กœ ํˆฌ๋‘๋ฆฌ์ŠคํŠธ๋ฅผ redux-toolkit์œผ๋กœ ๋ฆฌํŒฉํ† ๋ง ํ•œ ํ›„์— ๋ณธ๊ฒฉ์ ์œผ๋กœ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์— ๋“ค์–ด๊ฐ€๋ฉฐ ๋งŒ๋‚˜๊ฒŒ ๋œ ์˜ค๋ฅ˜๋“ค์„ ๊ธฐ๋กํ•ด๋ณธ๋‹ค. ์—๋Ÿฌ๊ฐ€ ๊ผฌ๋ฆฌ์— ๊ผฌ๋ฆฌ๋ฅผ ๋ฌผ๊ณ  ๋ฐœ์ƒํ•ด์„œ ๋ชจ๋“  ์—๋Ÿฌ๊ฐ€ ์™„์ „ ํ•ด๊ฒฐ๋œ ๊ฒƒ์€ ์•„๋‹ˆ๊ณ  ํ˜„์žฌ ์ง„ํ–‰ํ˜•์ด๋‹ค.. ๐Ÿ˜‡ ๋‚ด์ผ์ฏค์—” ๋‹ค ์™„์„ฑํ•˜๊ธฐ ์•Š์„๊นŒ!.. ๐Ÿšง useRef()์˜ focus ๊ด€๋ จ ์—๋Ÿฌ Property 'focus' does not exist on type 'string' Property 'focus' does not exist on type 'string' useRef()์˜ ํƒ€์ž…์ด ์ œ๋Œ€๋กœ ์ •ํ•ด์ ธ์žˆ์ง€ ์•Š์•„ ๋ฐœ์ƒํ•œ ์—๋Ÿฌ.. ์ฐพ์•„๋ณด๋‹ˆ useRef๋ฅผ DOM ์กฐ์ž‘ ์šฉ๋„๋กœ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด HTMLํƒœ๊ทธ๋ฅผ ์ง€์ •ํ•ด์ค˜์•ผ ํ•œ๋‹ค๊ณ .. ์ง€์—ญ๋ณ€..

๊ธฐ์กด ๋ฆฌ์•กํŠธ ํ”„๋กœ์ ํŠธ์— TypeScript ์ ์šฉํ•˜๊ธฐ
๐Ÿ“” Studying/๐Ÿ’Œ TIL 2023. 1. 16. 22:02

Today, What I learned? ๊ธฐ์กด ํ”„๋กœ์ ํŠธ์— ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ๋ฆฌํŒฉํ† ๋ง์„ ์‹œ๋„ํ•˜๊ธฐ ์•ž์„œ, ํ˜ผ์ž ํ–ˆ๋˜ ํˆฌ๋‘๋ฆฌ์ŠคํŠธ ํ”„๋กœ์ ํŠธ๋ฅผ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋กœ ๋ฆฌํŒฉํ† ๋ง ํ•ด๋ณด๊ธฐ๋กœ ํ–ˆ๋‹ค. ๋จผ์ € ๊ธฐ์กด ํ”„๋กœ์ ํŠธ๋Š” ๋ฆฌ๋•์Šค์™€ ๋ผ์šฐํ„ฐ๋ฅผ ์ด์šฉํ•ด์„œ ํŽ˜์ด์ง€ ์ด๋™๊ณผ CRUD๊ฐ€ ์ ์šฉ๋˜์–ด ์žˆ๋Š” ํˆฌ๋‘๋ฆฌ์ŠคํŠธ์˜€๋‹ค. ๊ธฐ๋ณธ ๋ฆฌ๋•์Šค๊ฐ€ ์ ์šฉ๋˜์–ด ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋จผ์ € redux-toolkit์œผ๋กœ ๋ฆฌํŒฉํ† ๋ง ํ•ด์ค€ ํ›„ ๋ณธ๊ฒฉ์ ์ธ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ์ ์šฉ ์‹œ์ž‘!.. ํŒจํ‚ค์ง€ ์„ค์น˜ํ•˜๊ธฐ ๋จผ์ € ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ์™€ ๊ด€๋ จ๋œ ํŒจํ‚ค์ง€๋“ค์„ ์„ค์น˜ํ•ด ์ฃผ์—ˆ๋‹ค. ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ๊ณต์‹๋ฌธ์„œ์—์„œ ๋ณด๊ณ  ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•œ ํ›„์—, https://www.typescriptlang.org/download How to set up TypeScript Add TypeScript to your project, or instal..

์ธํ„ฐ๋ฏธ์…˜ ํ”„๋กœ์ ํŠธ๋ฅผ ๋งˆ์น˜๋ฉฐ
๐Ÿ“˜ Retrospect/NBC Projects 2023. 1. 13. 19:55

ํ”„๋กœ์ ํŠธ๋ฅผ ๋งˆ์น˜๋ฉฐ ์œ ๋… ํž˜๋“ค๊ณ  ๊ณ ํ†ต์ด์—ˆ๋˜ ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ๊ฐ€ ๋๋‚ฌ๋‹ค!.. ๋„ค์ดํ‹ฐ๋ธŒ.. ๋„ˆ๋ฌด๋‚˜ ํž˜๋“ค์—ˆ๋‹ค.. ๊ฐ€์žฅ ํž˜๋“ค์—ˆ๋˜ ๋ถ€๋ถ„์€ ๋ฐฐํฌ ํ›„ ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ์—๋Ÿฌ๊ฐ€ ์—ฐ๋‹ฌ์•„ ํ„ฐ์กŒ์„ ๋•Œ์˜€๋˜ ๊ฒƒ ๊ฐ™๋‹ค ^^.. ์šฐ๋ฆฌ์˜ ์„œ๋น„์Šค๋Š” ์•„๋ž˜ ๋ ˆํฌ์ง€ํ† ๋ฆฌ์— ์ž˜ ์ •๋ฆฌํ•ด ๋‘์—ˆ๋‹ค! https://github.com/yujleee/intermission GitHub - yujleee/intermission: ๊ณต์—ฐ์˜ˆ์ˆ ํ†ตํ•ฉ์ „์‚ฐ๋ง(KOPIS)์˜ OPEN API๋ฅผ ํ™œ์šฉํ•œ ๋ฎค์ง€์ปฌ ์ •๋ณด ์ œ๊ณต ๋ฐ ๋ฆฌ๋ทฐ ๊ณต์—ฐ์˜ˆ์ˆ ํ†ตํ•ฉ์ „์‚ฐ๋ง(KOPIS)์˜ OPEN API๋ฅผ ํ™œ์šฉํ•œ ๋ฎค์ง€์ปฌ ์ •๋ณด ์ œ๊ณต ๋ฐ ๋ฆฌ๋ทฐ ์•ฑ. Contribute to yujleee/intermission development by creating an account on GitHub. github.com ์ด..

[ReactNative] ์ ‘ํž˜ ํŽผ์นจ ๋ฒ„ํŠผ๊ณผ ์˜์—ญ ๋งŒ๋“ค๊ธฐ
๐Ÿ“” Studying/๐Ÿ’Œ TIL 2023. 1. 13. 08:44

Today, What I learned? ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉฐ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•  ๋•Œ๋งˆ๋‹ค ๋ฎค์ง€์ปฌ์˜ ์ƒ์„ธ ์„ค๋ช… ์ด๋ฏธ์ง€๊ฐ€ ์ ‘๊ณ  ํŽผ์ณ์ง€๋Š” ๋ถ€๋ถ„์ด ํ•„์š”ํ–ˆ๋‹ค. collapsible view ๊ฐ™์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋„ ์žˆ๋Š” ๋“ฏํ–ˆ์ง€๋งŒ, ๊ฐ„๋‹จํ•˜๊ฒŒ ๊ตฌํ˜„ํ•˜๊ณ  ์‹ถ์–ด์„œ state๋ฅผ ์ด์šฉํ–ˆ๋‹ค. ์ด ๊ณผ์ •์—์„œ ๊ฒช์—ˆ๋˜ ์‹œํ–‰์ฐฉ์˜ค๋ฅผ ์ •๋ฆฌํ•ด๋ณธ๋‹ค. ์ ‘ํž˜, ํŽผ์นจ ๋ฒ„ํŠผ ์ ‘๊ณ  ํŽผ์ณ์ง€๋Š” ๋ถ€๋ถ„์€ ํŒ€์›๋ถ„์ด state๋กœ ์ž˜ ๊ตฌํ˜„ํ•ด ์ฃผ์…จ๋‹ค. const [isMoreButton, setMoreButton] = useState(false); isMoreButton์— ๋”ฐ๋ผ์„œ ์ด๋ฏธ์ง€๊ฐ€ ๋“ค์–ด๊ฐ€๋Š” ์˜์—ญ์ด ๋ณด์ด๊ณ  ๊ฐ์ถฐ์ง€๋„๋ก ํ–ˆ๋‹ค. {isMoreButton && ( )} ์ฒ˜์Œ์— ์ € ์˜์—ญ์€ ๋ฎค์ง€์ปฌ ์ •๋ณด ์˜์—ญ ์ปดํฌ๋„ŒํŠธ ์•ˆ์— ์žˆ์—ˆ๋Š”๋ฐ, ์ด๋ ‡๊ฒŒ ๋ณ€๊ฒฝ๋˜์—ˆ์„ ๋•Œ ์ด๋ฏธ์ง€๊ฐ€ ๋‹ค๋ฅธ ์˜์—ญ์˜ ์ด๋ฏธ์ง€๊นŒ์ง€..

[ReactNative] ํด๋ฆญํ•  ๋•Œ๋งˆ๋‹ค React Query์˜ useQuery๋กœ ๋‹ค๋ฅธ API ๋ถˆ๋Ÿฌ์˜ค๊ธฐ
๐Ÿ“” Studying/๐Ÿ’Œ TIL 2023. 1. 11. 22:49

Today, What I learned? ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉฐ ์นดํ…Œ๊ณ ๋ฆฌ์— ๋”ฐ๋ผ์„œ React Query์˜ useQuery๋ฅผ ํ†ตํ•ด ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๋ถ€๋ถ„์„ ์ง„ํ–‰ํ•˜๋ฉฐ ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ ๊ฒฐ๊ณผ๋ฌผ์„ ๋งŒ๋“ค์—ˆ๋Š”์ง€ ๊ธฐ๋กํ•ด ๋ณธ๋‹ค. ํ”ผ๊ทธ๋งˆ ์ƒ์œผ๋กœ ๋งŒ๋“ค์–ด์•ผ ํ–ˆ๋˜ ๋ถ€๋ถ„์ด๋‹ค. ๊ฐ ์ง€์—ญ์„ ํด๋ฆญํ•˜๋ฉด ํ•ด๋‹น ์ง€์—ญ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์™€์•ผ ํ•˜๋Š” ๋ถ€๋ถ„! ์ผ๋‹จ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•  ๋•Œ๋งˆ๋‹ค ๊ฐ ์ง€์—ญ์˜ ์ฝ”๋“œ๋ฅผ API์˜ params ๊ฐ’์œผ๋กœ ๋„˜๊ฒจ์ฃผ์–ด์•ผ ํ–ˆ๋‹ค. ๊ทธ๋ž˜์„œ API ํ•จ์ˆ˜์—์„œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ params๋ฅผ ๋ฐ›์•„์˜ค๊ธฐ๋กœ ํ–ˆ๋‹ค. export const getLocalPopular = (params) => { const [_, category] = params.queryKey; return fetch( `${BASE_URL}/boxoffice?servic..

[ReactNative] A VirtualizedList contains a cell which itself..์—๋Ÿฌ
๐Ÿ“” Studying/๐Ÿšง Errors 2023. 1. 11. 08:42

์–ด๋–ค ์—๋Ÿฌ? ํ”Œ๋žซ๋ฆฌ์ŠคํŠธ๋ฅผ ์—ฌ๋Ÿฌ ๊ฐœ ์‚ฌ์šฉํ•˜๋ ค๋‹ค ๋ณด๋‹ˆ ์•„๋ž˜์™€ ๊ฐ™์€ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค. ERROR A VirtualizedList contains a cell which itself contains more than one VirtualizedList of the same orientation as the parent list. You must pass a unique listKey prop to each sibling list. ํ”Œ๋žซ๋ฆฌ์ŠคํŠธ๊ฐ€ ์ค‘์ฒฉ๋˜์ง€ ์•Š๊ณ  ์—ฌ๋Ÿฌ๋ฒˆ ์“ฐ์ผ ๋•Œ ๋ชจ๋“  ํ˜•์ œ ๋ฆฌ์ŠคํŠธ์—๊ฒŒ ํ‚ค๊ฐ’์ด ํ•„์š”ํ•œ ๊ฒƒ ๊ฐ™์•˜๋‹ค. ์‚ฌ์‹ค ์—๋Ÿฌ์—์„œ ๋‹ต์„ ์ฃผ๊ณ ์žˆ์—ˆ์ง€๋งŒ listKey๊ฐ€ keyExtractor์™€ ์—ฐ๊ด€์ด ์žˆ๋Š”์ค„ ์•Œ๊ณ  ๋งŽ์€ ์‚ฝ์งˆ์„ ํ–ˆ๋‹ค (...) key๊ฐ€ ์œ ๋‹ˆํฌํ•œ ๊ฐ’์ด ์•„๋‹ˆ์–ด์„œ ๊ทธ๋Ÿฐ๊ฐ€? ์‹ถ์–ด์„œ ์ด๋Ÿฐ ์‚ฝ์ง‘๋“ค์„ ํ–ˆ์—ˆ๋‹ค. ..