[英]How to call a full html page into a React component
我创建了一个 html 文件,其中包含一个 R package 文件,称为 BioCircos(代表基因组上的防御系统)。 html 文件包含一个包含 Circos 图形和脚本的标签,使用户可以在 hover 模式下查看更多信息。 我通过 Flask API 将文件发送到 React.js 组件,以便在应用程序上查看它。 但是,我只能呈现没有脚本的图片。 我已经尝试了以下步骤:
链接到 HTML 文件 - https://drive.google.com/file/d/1ZAcK3o-4Kwmw2NzsRohO9IqjFheYSwU-/view?usp=sharing
import React, {Component} from "react";
import axios from "axios";
import InnerHTML from 'dangerously-set-html-content'
class CircosStrain extends Component {
state = {
file: null,
loaded: false
};
componentDidMount() {
axios
.get(
"http://127.0.0.1:8801/api/v1/strains/strainCircos/" + this.props.svnn,
)
.then(response => {
this.setState({file: response.data});
this.setState({loaded: true})
});
}
render() {
// return (<iframe dangerouslySetInnerHTML={{ __html: this.state.file}}/>);
return (
// <div dangerouslySetInnerHTML={{ __html: this.state.file }}/>
<InnerHTML html={this.state.file} />
)
}
}
export default CircosStrain;
可能iframe
方法会更容易。
注释掉的 iframe 方法中的问题是尝试使用 innerHTML 属性设置 iframe 内容。 如果您要显示的内容可通过 URL 获得,就像在示例中一样,最简单的方法是设置 iframe src
属性。
<iframe src={"http://127.0.0.1:8801/api/v1/strains/strainCircos/" + this.props.svnn}/>
如果您不能使用src
属性(例如,如果您想使用无法通过 URL 获得的内容,或者您需要在检索内容后对其进行修改),您也许可以使用srcdoc
属性。
<iframe srcdoc={this.state.file}/>
或者,如果您需要支持不支持srcdoc
属性的 Internet Explorer,您可以构造一个数据 url 。
利用
npm install node-html-parser
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.