210912 ๊ฐœ๋ฐœ๊ธฐ๋ก: ๋ฆฌ์•กํŠธ, ์‚ผํ•ญ์—ฐ์‚ฐ์ž ์—†์ด jsx ๊น”๋”ํžˆ ๋ฆฌํ„ด

2021. 9. 13. 08:02ใ†๐Ÿ“” TIL

๐Ÿ  ์‚ผํ•ญ์—ฐ์‚ฐ์ž๋ฅผ ์ด์šฉํ•œ jsx ๋ฆฌํ„ด

jsx/tsx ์—์„œ ์•„๋ž˜์ฒ˜๋Ÿผ ์‚ผํ•ญ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์›ํ•˜๋Š” ํƒœ๊ทธ๋ฅผ ๋ Œ๋”๋ง ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค.

 

responseData['image'] ๊ฐ’์ด ์กด์žฌํ•  ๋•Œ์™€ ๊ทธ๋ ‡์ง€ ์•Š์„ ๋•Œ ๊ฐ๊ฐ ๋‹ค๋ฅธ ํƒœ๊ทธ๋ฅผ ๋ Œ๋”๋งํ•˜๋Š” ์ฝ”๋“œ์ธ๋ฐ, 

์šฐ์„  ์ฝ”๋“œ ๊ฐ€๋…์„ฑ์ด ๋„ˆ๋ฌด ๋–จ์–ด์ ธ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์„ ์ฐพ๊ณ  ์‹ถ์—ˆ๋‹ค.

 

 

๐ŸŽ  Nesting ๋Œ€์‹  OR operator ๋ฅผ ์‚ฌ์šฉํ•œ ๋ฆฌํ„ด

๋‹ค๋ฅธ ๋ถ„์˜ ๋ฒจ๋กœ๊ทธ ๋ฅผ ํ†ตํ•ด ๋„ค์ŠคํŒ…์ด ์•„๋‹Œ early return ์ด๋ž€ ๋ฐฉ๋ฒ•์„ ์•Œ๊ฒŒ ๋๋‹ค. (์ด๋ถ„๋„ ์ฃผ๋‹ˆ์–ด ๊ฐ™์€๋ฐ ๊ธ€์„ ๊น”๋”ํ•˜๊ณ  ๊ฐ€๋…์„ฑ์žˆ๊ฒŒ ์ž˜ ์“ฐ์‹ ๋‹ค. ๋ฌด์—‡๋ณด๋‹ค ๋‚ด์šฉ์ด ์ข‹๋‹ค..!!)

 

์šฐ์„  ์‚ผํ•ญ ์—ฐ์‚ฐ์ž๋กœ ์‚ฌ์šฉํ•  ์ฝ”๋“œ ๋ถ€๋ถ„์„ ์•„์˜ˆ ๋‹ค๋ฅธ ์ปดํฌ๋„ŒํŠธ๋กœ ์ƒ์„ฑํ•œ๋‹ค.

QuestionImg ๋ผ๋Š” ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ์•„๋ž˜ ์ฃผ์„๋œ ์ฝ”๋“œ๋ฅผ ๋ฐ€์–ด๋„ฃ์—ˆ๋‹ค.

 

์ด์ œ ํ•œ๋ˆˆ์— ๋ด๋„ ์ฝ”๋“œ๊ฐ€ ๊น”๋”ํ•ด์ง„ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ๋งˆ์ € ์ž‘์—…ํ•˜๋Ÿฌ QuestionImg ์ปดํฌ๋„ŒํŠธ ๋‚ด๋ถ€๋ฅผ ์‚ดํŽด๋ณด์ž. 

์ด์ „์—๋Š” ์‚ผํ•ญ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค๋ฉด, ์ด๋ฒˆ์—๋Š” OR operator ๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค.

๊ตฌํ˜„ํ•˜๊ณ ์ž ํ•˜๋Š” ๋‚ด์šฉ์€ ๊ฐ™๋‹ค. responseData['image'] ๊ฐ€ ์กด์žฌํ•œ๋‹ค๋ฉด, ํ•ด๋‹น ๊ฐ’์„ img ํƒœ๊ทธ์˜ src ๋กœ ๋„ฃ๊ณ , ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด '์Šฌ์˜' ๋ผ๋Š” ๊ณ ์ •๊ฐ’์„ ์‚ฌ์šฉํ•œ๋‹ค. ์ด ๋ถ€๋ถ„์„ ์‚ผํ•ญ์—ฐ์‚ฐ์ž๊ฐ€ ์•„๋‹Œ OR operator ๋ฅผ ์‚ฌ์šฉํ•จ์œผ๋กœ ๋”์šฑ ๊น”๋”ํžˆ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

const QuestionImg = () => {

    const imageName = responseData['image'] || '์Šฌ์˜' 

    return (
            <img
                id="poster"
                src={require(`../images/${imageName}.png`).default}
                alt={ imageName}/>
    );
}

export default QuestionImg;

 

๊น”-๋”