Youtube - 是否可以从状态传递自动播放值的值(React JS)

Youtube - Is it possible to pass a value from state for the autoplay value (React JS)

我的一个要求是在观看时自动播放 youtube 视频,但是,似乎 onPlayerReady() 函数没有及时收到道具,所以总是默认为 false。我尝试了多种不同的方法,例如在 useEffect 中听取该值并尝试重新渲染视频,但没有任何成功。

有没有人遇到过类似的问题?或者我需要连接到不同的事件来更新吗?

我将附上一些示例代码以供视觉参考,如果需要添加更多代码来帮助解决问题,请告诉我!

const initPlayer = new YT.Player(videoId, {
        height,
        width,
        videoId: youtubeId,
        frameborder: '0',
        playerVars: {
          modestbranding: 1,
          rel: 0,
          controls: 0
          mute: 1
          autoplay: autoplayWhenInView ? 1 : 0 // Would like to use this value which is passed from a parent component
        },
        events: {
          'onReady': onPlayerReady, // autoplayWhenInView is false when it's actually true
          'onStateChange': onPlayerStateChange || {},
        }
      });

您可以包装整个组件,然后仅在视图中渲染它,然后 autoplay 将始终设置为 true

否则,您需要以编程方式触发播放器实例上的 play 方法,因为它已经创建并且 autoplay 仅用于初始初始化而不是反应式。

根据上面的评论,我通过在视图中有条件地呈现我的视频组件来解决这个问题。