![](/img/trans.png)
[英]Uncaught SyntaxError: Unexpected token '<' React
[英]React in HTML Uncaught SyntaxError: Unexpected token '<'
我正在嘗試將 React 工作到我的 HTML 頁面中,我正在嘗試從引導程序創建動態卡,但我一直在得到這是我到目前為止所擁有的
服務.html
<head>
<script src="https://unpkg.com/@babel/standalone/babel.min.js"></script>
</head>
<body>
<div id="services-load"></div>
<script src="https://unpkg.com/react@16/umd/react.production.min.js" crossorigin></script>
<script src="https://unpkg.com/react-dom@16/umd/react-dom.production.min.js" crossorigin></script>
<script type="module" src="rjs.js"></script>
</body>
rjs.js
const e = React.createElement;
import Card from "./services/Cards";
const domContainer = document.querySelector('#services-load');
ReactDOM.render(e(<Card />), domContainer);
卡片.js
import Card from "./CardUI";
import img1 from "../assets/imgs/services/botox.jpg";
import img2 from "../assets/imgs/services/lipo.jpg";
import img3 from "../assets/imgs/services/prp.jpg";
const Card = props => {
return (
<div className="container aesthetic-body">
<div className="row">
<div className="col-lg-4 col-md-4 col-sm-4 col-xs-4">
<Card imgsrc={img1}/>
</div>
<div className="col-lg-4 col-md-4 col-sm-4 col-xs-4">
<Card imgsrc={img2}/>
</div>
<div className="col-lg-4 col-md-4 col-sm-4 col-xs-4">
<Card imgsrc={img3}/>
</div>
</div>
</div>
);
}
export default Card;
卡片UI.js
const Card = props => {
return (
<div className="card">
<a href="">
<div className="card-header">BOTOX / FILLERS</div>
<img className="card-img-top" src={props.imgsrc} alt={"Card image cap"}/>
</a>
</div>
);
}
export default Card;
為了使用import
,您需要通過在<script />
上指定plugins
來添加一個用於轉換transform-es2015-modules-umd
的plugins
。
假設您有以下結構:
public
- foo.js
- index.js
- index.html
foo.js
導出一個簡單的組件,如下所示:
export default () => <div>Foo</div>;
index.js
是關於導入和 boostrap 的:
import Foo from "foo";
ReactDOM.render(<Foo />, document.getElementById("root"));
最后,在index.html
注冊模塊:
<script
data-plugins="transform-es2015-modules-umd"
type="text/babel"
src="./foo.js"
></script>
<script
data-plugins="transform-es2015-modules-umd"
type="text/babel"
src="./index.js"
></script>
</body>
這是index.html
完整代碼:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta
name="viewport"
content="width=device-width, initial-scale=1, shrink-to-fit=no"
/>
<script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>
<script
src="https://unpkg.com/react@16/umd/react.production.min.js"
crossorigin
></script>
<script
src="https://unpkg.com/react-dom@16/umd/react-dom.production.min.js"
crossorigin
></script>
<title>React App</title>
</head>
<body>
<div id="root"></div>
<script
data-plugins="transform-es2015-modules-umd"
type="text/babel"
src="./foo.js"
></script>
<script
data-plugins="transform-es2015-modules-umd"
type="text/babel"
src="./index.js"
></script>
</body>
</html>
還有codesanbox鏈接: https ://codesandbox.io/s/quizzical-bird-vwn5t ? file =/ public/index.js
你不能在 js 文件上寫 HTML。 您需要切換到 jsx ( Javascript XML ) 文件格式。
將文件重命名為Cards.js => Cards.jsx
和CardUI.js => CardUI.jsx
我認為您需要一個 babel 轉譯器來翻譯 JSX 語法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.