๐Ÿ’ป๐Ÿ’€/๊ฐœ๋ฐœ

[react-youtube] videoId์— ๋”ฐ๋ผ ์˜์ƒ์ด ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์„ ๋•Œ

db2 2022. 9. 2. 23:33

react-youtube

react-youtube๋Š” YouTube IFrame Player API๋ฅผ ๋ฆฌ์•กํŠธ ์ปดํฌ๋„ŒํŠธ๋กœ์„œ ๊ตฌํ˜„ํ•œ ํŒจํ‚ค์ง€์ด๋‹ค. ์‚ฌ์šฉ๋ฒ•์€ ๋„ˆ๋ฌด๋‚˜ ๊ฐ„๋‹จํ•˜๋‹ˆ ๊ณต์‹ ๋ฌธ์„œ๋ฅผ ์ฐธ๊ณ ํ•˜์ž.

videoId๊ฐ€ ๋ฐ”๋€Œ์–ด๋„ ์˜์ƒ์ด ๋ณ€๊ฒฝ๋˜์ง€ ์•Š๋Š”๋‹ค?

๋น ๋ฅด๊ฒŒ ์œ ํŠœ๋ธŒ ํ”Œ๋ ˆ์ด์–ด๋ฅผ ์„œ๋น„์Šค์— ํฌํ•จ์‹œํ‚ค๊ณ ์ž ์‚ฌ์šฉํ–ˆ๋Š”๋ฐ, ๋ช‡ ๊ฐ€์ง€ ์ด์Šˆ๊ฐ€ ์žˆ์—ˆ๋‹ค. ๊ทธ ์ค‘์— ํ•˜๋‚˜๋Š” props๋กœ ๋‚ด๋ ค๋ฐ›์€ videoId์— ๋”ฐ๋ผ ์˜์ƒ์ด ์—…๋ฐ์ดํŠธ ๋˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฑฐ์˜€๋‹ค.

์ดํ•ด๋ฅผ ๋•๊ธฐ ์œ„ํ•ด ๊ณต์‹ ๋ฌธ์„œ์˜ ์˜ˆ์ œ๋ฅผ ๊ฐ€์ ธ์™”๋‹ค. ์—ฌ๊ธฐ์„œ ์šฐ๋ฆฌ๋Š” videoId๊ฐ€ ๋ณ€๊ฒฝ๋˜๋ฉด Example ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋ฆฌ๋ Œ๋” ๋˜๋ฉด์„œ ์˜์ƒ์ด ๋ณ€๊ฒฝ๋  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ์˜์ƒ์ด ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์•˜๋‹ค!

import YouTube from 'react-youtube';

function Example({ videoId }) {
    return (
        <YouTube 
            videoId={videoId} 
            opts={{
              height: '390',
              width: '640',
              playerVars: {
                autoplay: 1,
              },
            }} 
        />
    );
}

key๋ฅผ ์ถ”๊ฐ€ํ•˜์ž!

๋‹ค๋ฅธ ํŒจํ‚ค์ง€์ด์ง€๋งŒ react-native-youtube-player์˜ ์ด์Šˆ์—์„œ ํ•ด๊ฒฐ๋ฒ•์„ ์ฐพ์•˜๋‹ค. Youtube ์ปดํฌ๋„ŒํŠธ์— key ์†์„ฑ์„ ์ถ”๊ฐ€ํ•˜๋ฉด ์—…๋ฐ์ดํŠธ๊ฐ€ ์ž˜ ๋œ๋‹ค.

function Example({ videoId }) {
    return (
        <YouTube 
            key={videoId}
            videoId={videoId} 
            opts={{
              height: '390',
              width: '640',
              playerVars: {
                autoplay: 1,
              },
            }} 
        />
    );
}