【发布时间】:2020-02-17 15:21:04
【问题描述】:
我正在尝试将一些 React 代码注入 HTML 文档。我正在关注 React 自己的文档并将他们的启动代码(一个简单的类似按钮)输入到页面中。一切都很好。我将其更改为使用 JSX,将其更改为使用钩子的功能组件,而不是具有状态的类组件。没问题。
但是,每当我包含 import 调用并尝试引入另一个组件时,该组件会在页面上中断并停止显示,但不会抛出任何我能看到的错误。
如何在将组件和模块化注入到 html 页面中时,以“react-y”的方式进行开发?
这是我目前正在使用的代码:
HTML 文档
<body>
<div id="react-root"></div>
<!-- inject react, reactDOM and JSX engine -->
<script src="https://unpkg.com/react@16/umd/react.development.js" crossorigin></script>
<script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js" crossorigin></script>
<script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>
<!-- point to component -->
<script src="transpiled/app.js"></script>
</body>
反应组件
'use strict';
import {SecondComponent} from './components/SecondComponent';
const e = React.createElement;
const LikeButton = () => {
const [liked, setLiked] = React.useState(false);
if (liked) return 'You liked this functional component.'
const handleLikeClick = () => {
setLiked(true);
}
return (
<div>
<button onClick={handleLikeClick}>new like button with jsx</button>
{liked && <SecondComponent/>}
</div>
)
}
const domContainer = document.querySelector('#react-root');
ReactDOM.render(e(LikeButton), domContainer);
就像我说的那样,任何类型的 import 语句似乎都会出现中断。在网上找不到有关它的资源。提前感谢您的帮助!
【问题讨论】:
-
如果我理解正确,您是在尝试在常规 JS 脚本文件 (
app.js) 中使用常规import语句? -
是的,没错
-
你试过
import React from "react"吗?