קורס React 2020 שיעור דוגמא: עבודה עם Youtube API


זהו נושא דיון מלווה לערך המקורי שב־https://www.tocode.co.il/bundles/react/lessons/youtube-api

למה צריך את const [isPlaying, setIsPlaying] = useState(false);
אם אפשר להשתמש פשוט בפונקציות פשוטות לplay וpasue כמו שעשיתי פה

function YoutubePlayer(props) {
  const [videoId, setVideoId] = useState('M7lc1UVf-VE');
  const [isPlaying, setIsPlaying] = useState(false);
  const divRef = useRef(null);
  const playerRef = useRef(null);

  useEffect(function () {
    playerRef.current = YouTubePlayer(divRef.current);
  }, []);

  useEffect(function () {
    const player = playerRef.current;
    player.loadVideoById(videoId);
    player.playVideo();
  }, [videoId]);

  function pause() {
    playerRef.current.pauseVideo();
  }
  function play() {
    playerRef.current.playVideo();
  }

  return (
    <div>
      <div><input type="text" value={videoId} onChange={(e) => setVideoId(e.target.value)} /></div>
      <div><button onClick={play}>start</button><button onClick={pause}>stop</button></div>
      <div className='player-div' ref={divRef} />
    </div>
  );
}

הי,

לא צריך :slight_smile:

אבל הרבה פעמים רוצים.

שמירת המידע בסטייט תעזור לנו להשתמש במידע הזה בקומפוננטה, למשל אם אני יודע שסרט מנגן עכשיו אולי אני רוצה להציג ממשק שונה מאשר אם הסרט ב pause.