代码之家  ›  专栏  ›  技术社区  ›  amar ghodke

如何从json url向react组件呈现iframe

  •  0
  • amar ghodke  · 技术社区  · 7 年前

    我正在尝试将youtube iframe从json文件呈现到子组件中。我有一个父组件,它正在从这个json文件加载卡数据。点击这个卡文件,我正在呈现卡数据json值,它也有视频url。当我点击卡,我打开卡数据到新的选项卡,我只得到iframe框而不是像普通youtube那样的视频预览。怎么解决?

    我的项目是react.net核心。

    卡片数据.tsx

    const CardData = {
      "cards": [
        {
          "projectID": "00001",
          "projectName": "One tent system",
          "profileProjectImage": "https://s3-sa-east-1.amazonaws.com/cdn.br.catarse/uploads/project/uploaded_image/72644/project_thumb_large_capinha.jpg",
          "projectBy": "Crua Outdoors",
          "projectDescrition": "Lightweight Hiking Tent + Insulated Cocoon + Air-Framed Living Space: Use individually or together for the ultimate outdoors experience",
          "projectLocation": " New York, NY",
              "videoUrl": "https://www.youtube.com/embed/hHMqkmIvOFw"
    
        },
        {
          "projectID": "00002",
          "projectName": "Two tent system",
          "profileProjectImage": "https://s3-sa-east-1.amazonaws.com/cdn.br.catarse/uploads/project/uploaded_image/72644/project_thumb_large_capinha.jpg",
          "projectBy": "Crua Outdoors",
          "projectDescrition": "Lightweight Hiking Tent + Insulated Cocoon + Air-Framed Living Space: Use individually or together for the ultimate outdoors experience",
            "projectLocation": " New York, NY",
            "videoUrl": "hiii"
        },
        {
          "projectID": "00003",
          "projectName": "Three tent system",
          "profileProjectImage": "https://s3-sa-east-1.amazonaws.com/cdn.br.catarse/uploads/project/uploaded_image/72644/project_thumb_large_capinha.jpg",
          "projectBy": "Crua Outdoors",
          "projectDescrition": "Lightweight Hiking Tent + Insulated Cocoon + Air-Framed Living Space: Use individually or together for the ultimate outdoors experience",
            "projectLocation": " New York, NY",
            "videoUrl": "hiii"
        }
      ]
    }
    export default CardData;
    

    import * as React from 'react';
    import App from '../HomePopularCards/ProjectCardContainer';
    import CardData from '../HomePopularCards/CardData';
    export default function ProjectDetailPage(props) {
        const projectID = props.match.params.projectID;
        const project = CardData.cards.find(card => card.projectID === projectID);
    
        return (
            <div>
            <div className="container-fluid">
                <div className="row">
                    <div className="col-md-12">
                        <h2 className="text-center">{project.projectName}</h2>
                    </div>
                </div>  
            </div>      
    
            <div className="container-fluid">
                <div className="row">
                       <div className="col-md-6">
                            <iframe width="560" height="315" src={project.videoUrl} ></iframe>
                        </div>
                        <div className="col-md-6">
                            {project.projectBy}
                            {project.projectDescrition}
                            {project.projectLocation}
    
                    </div> 
                </div>
            </div>   
                </div>
    
        );
    }
    
    1 回复  |  直到 7 年前
        1
  •  0
  •   amar ghodke    6 年前

    iframe没有加载的主要原因是有两个文件, CardData.js卡数据 两者都在同一个目录中。由于Webpack编译或优先于carddata.js,我在 CardData.js卡数据 . 我只是删除了我的 CardData.js卡数据 一切顺利!!