如何在按钮单击react时渲染YouTube视频?

发布于 2025-02-05 08:09:37 字数 1081 浏览 4 评论 0原文

我是新手反应的新手,并且正在尝试构建视频播放器页面。目前,我有一个超级基本的页面 - 我想拥有一个按钮,当单击时,呈现YouTube视频。

player软件包的资源

function YouTubePlayer () {
  return (
    <div>
      <ReactPlayer
        url="https://www.youtube.com/watch?v=ug50zmP9I7s"
      />
    </div>
  )
}

export default YouTubePlayer

我遵循了使用NPM React - 单击按钮。我创建了一个按钮和一个类似的事件处理程序:

import { Component } from 'react';
import ReactPlayer from 'react-player';

class YouTubePlayer extends Component {
    
    constructor(props) {
        super(props);
    }

    handleYouTubeClick = () => {
        return (
            <div>
                <ReactPlayer url="https://youtu.be/OXHCt8Ym9gw"/>
            </div>
        );
    }

    render() {
        return ( 
        <div>
            <p>Video Player</p>
            <button onClick={this.handleYouTubeClick}>YouTube</button>
        </div>
        );
    }

export default YouTubePlayer

但是没有视频呈现。我必须与国家做某事吗?我不知道该怎么做。同样,我对反应很新,所以请让我知道我是否正在完全错误。谢谢。

I am new to React and am trying to build a video player page. Currently I have a super basic page in mind — I'd like to have one button that, when clicked, renders a YouTube video.

I've followed a resource that uses the npm react-player package so that I can just embed a Youtube Player as follows:

function YouTubePlayer () {
  return (
    <div>
      <ReactPlayer
        url="https://www.youtube.com/watch?v=ug50zmP9I7s"
      />
    </div>
  )
}

export default YouTubePlayer

However, instead of having the video display on the page as soon as it loads, I want it to only load when the button is clicked. I created a button and an event handler like this:

import { Component } from 'react';
import ReactPlayer from 'react-player';

class YouTubePlayer extends Component {
    
    constructor(props) {
        super(props);
    }

    handleYouTubeClick = () => {
        return (
            <div>
                <ReactPlayer url="https://youtu.be/OXHCt8Ym9gw"/>
            </div>
        );
    }

    render() {
        return ( 
        <div>
            <p>Video Player</p>
            <button onClick={this.handleYouTubeClick}>YouTube</button>
        </div>
        );
    }

export default YouTubePlayer

but no video gets rendered. Do I have to do something with states? I do not know how I would go about doing so. Again, I am very new to React, so please let me know if I am approaching this completely wrong. Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

乱世争霸 2025-02-12 08:09:37
import { Component } from "react";
import ReactPlayer from "react-player";

class YouTubePlayer extends Component {
  constructor(props) {
    super(props);
    this.state = {
      isClicked: false
    };
  }

  handleYouTubeClick = () => {
    this.setState({
      isClicked: true
    });
  };

  render() {
    return (
      <div>
        <p>Video Player</p>
        <button onClick={this.handleYouTubeClick}>Youtube</button>
        {this.state.isClicked && (
          <div>
            <ReactPlayer url="https://youtu.be/OXHCt8Ym9gw" />
          </div>
        )}
      </div>
    );
  }
}
export default YouTubePlayer;

这是解决您的问题的代码。

import { Component } from "react";
import ReactPlayer from "react-player";

class YouTubePlayer extends Component {
  constructor(props) {
    super(props);
    this.state = {
      isClicked: false
    };
  }

  handleYouTubeClick = () => {
    this.setState({
      isClicked: true
    });
  };

  render() {
    return (
      <div>
        <p>Video Player</p>
        <button onClick={this.handleYouTubeClick}>Youtube</button>
        {this.state.isClicked && (
          <div>
            <ReactPlayer url="https://youtu.be/OXHCt8Ym9gw" />
          </div>
        )}
      </div>
    );
  }
}
export default YouTubePlayer;

Here is the code to solve your problem.

巴黎夜雨 2025-02-12 08:09:37
class YouTubePlayer extends Component {

    state = {
        showYoutube: false,
    }

    ShowPlayer = () => {
        if(this.state.showYoutube) {
                return (
                    <div>
                        <ReactPlayer url="https://youtu.be/OXHCt8Ym9gw"/>
                    </div>
                );
        }
    }

    handleYouTubeClick = () => {
        this.setState({
            showYoutube: true,
        })
    }

    render() {
        return ( 
            <div>
                <p>Video Player</p>
                <this.ShowPlayer />
                <button onClick={this.handleYouTubeClick}>Youtube</button>
            </div>
        );
    }
    
}

我希望这对您有帮助。
谢谢

class YouTubePlayer extends Component {

    state = {
        showYoutube: false,
    }

    ShowPlayer = () => {
        if(this.state.showYoutube) {
                return (
                    <div>
                        <ReactPlayer url="https://youtu.be/OXHCt8Ym9gw"/>
                    </div>
                );
        }
    }

    handleYouTubeClick = () => {
        this.setState({
            showYoutube: true,
        })
    }

    render() {
        return ( 
            <div>
                <p>Video Player</p>
                <this.ShowPlayer />
                <button onClick={this.handleYouTubeClick}>Youtube</button>
            </div>
        );
    }
    
}

I hope this will help you.
Thanks

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文