Component này sử dụng thẻ <video> có sẵn trong trình duyệt và ta muốn truyền vào propsisPlaying từ parent component để kiểm soát khi nào thì video được phép phát:
Tuy nhiên, thẻ <video> không có thuộc tính isPlaying nên ta chỉ có thể gọi phương thức play() hoặc pause() thông qua DOM node của nó:
Trong đoạn code trên, DOM node của thẻ <video> được tham chiếu bởi một reference object bằng cách sử dụng hook useRef.
Tuy nhên, đoạn code ở trên không thể hoạt động. Lý do là vì khi chúng ta thực hiện truy cập đến thẻ <video> trong quá trình render, nó vẫn chưa được tạo ra nên ta không thể gọi phương thức play() hay pause().
Giải pháp cho vấn đề này là sử dụng useEffect để gọi hai phương thức cần gọi sau khi DOM node đã được tạo ra như sau: