我想将一个文件导入到(一个React组件)中。

peft.html
<!DOCTYPE html>
<html>
<head>
<title>Page Title</title>
</head>
<body>
<h1>This is a Heading</h1>
<p>This is a paragraph.</p>
</body>
</html>index.js
import perf from perf.html
class Index extends React.Component {
render(){
return (
<iframe src="perf"></iframe> /* like this */
<iframe src="./perf"></iframe> /* or like this */
/* or like any possible way */
);
}
}
export default Index;因此,在我的例子中,我需要导入一个本地HTML文件并在其中使用它,但是我得到了错误:
默认错误:模块解析失败: C:\Users....\target.html意外令牌(1:0)您可能需要一个适当的加载程序来处理此文件类型。
有什么想法吗?如何在React组件中加载HTML文件?如何添加适当的加载程序来处理此文件类型?什么都行?
我认为这个解决方案最符合逻辑:
var __html = require('./template.html');
var template = { __html: __html };
React.module.exports = React.createClass({
render: function() {
return(
<div dangerouslySetInnerHTML={template} />
);
}
});但是我不能应用它,因为我收到了一个错误:
Uncaught (in promise) Error: Module parse failed: C:\Users\....\target.html Unexpected token (1:0) You may need an appropriate loader to handle this file type.
| <!DOCTYPE html>
| <html xmlns="w3.org/1999/xhtml">;
| <head><title>发布于 2018-06-11 09:48:52
您可以导入或要求html文件并在src属性中使用它,
var perf =require('./template.html');
class Index extends React.Component {
render(){
return (
<iframe src={perf }></iframe> /* like this */
);
}
}
export default Index;发布于 2022-09-09 03:49:13
花了两个小时在这上面。
有两种方法,可以在下面这样做:
iframe (页面的一部分)转到html文件(chap3.htm)。fetch chap3.htm的内容,并设置为chap3.htm,状态与dangerouslySetInnerHTML一起添加。注意事项
public目录(myapp\public\chap3.htm)中。方法1
import React from'react';
import'./App.css';
function App() {
return(
<div className="App">
<iframe src="chap3.htm"></iframe>
</div>
);
}
export default App;方法2
import React, { useEffect, useState }from'react';
import'./App.css';
function App() {
let[htmlFileString, setHtmlFileString] = useState();
async function fetchHtml() {
setHtmlFileString(await (await fetch(`chap3.htm`)).text());
}
useEffect(() => {
fetchHtml();
}, []);
return(
<div className="App">
<div dangerouslySetInnerHTML={{ __html: htmlFileString }}></div>
</div>
);
}
export default App;https://stackoverflow.com/questions/50792942
复制相似问题