使用 iframe 在 React 应用程序中渲染 HTML

IT技术 javascript reactjs iframe
2021-05-04 00:43:13

我有一个 React 组件,我想将一些静态 HTML 渲染到其中。这是我的 React 组件的一个片段:

class MyComponent extends Component {
    render() {
        return (
            <div>
                <iframe title="static_html" src="static_html_in_react_project.html"></iframe>
            </div>
        );
    }
}

我只有一个基本的 HTML 文件,如下所示:

<html>
    <head>
        <title>HTML</title>
        <script src="http://code.jquery.com/jquery-1.11.3.min.js" type="text/javascript"></script>
    </head>
    <body>
        Do some stuff here
    </body>
</html>

但是,当我使用 React 组件时,它似乎不起作用,因为它只是在iframe. 我已经将静态 HTML 文件放置在public与调用组件相同的目录中,并且它会一遍又一遍地渲染父组件。

任何人都有iframe在同一个 React 项目中渲染静态文件的解决方案吗?

2个回答

我遇到了同样的问题。可以通过将外部 html 文件与index.html. 此解决方案有效。如果 html 文件在 src 文件夹中,它以某种方式不会拾取它们并呈现它们。

我在项目中使用了 webpack 和 babel。如果你想要一个示例项目来尝试一下,试试这个 https://github.com/grommet/grommet-vending 将外部文件放在公共文件夹中,并在 src 中放置一个页面,其中包含 iframe。

但是,当您在 iframe 中添加文件地址时,请使用

src="../App_File.html"

有一个 NPM 包就是为了这个。退房react-iframe

https://www.npmjs.com/package/react-iframe