我正在尝试让 Material-UI 在纯 javascript 中工作(没有 babel、模块、jsx 等)
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title>Bridge Bridge.React.Examples</title>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,500">
<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
<script crossorigin src="https://unpkg.com/react@16/umd/react.development.js"></script>
<script crossorigin src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script>
<script crossorigin src="https://unpkg.com/@material-ui/core/umd/material-ui.development.js"></script>
</head>
<body>
<div id="main"></div>
<script>
ReactDOM.render(
React.createElement(Button, {variant: 'contained', color: 'primary'}, 'Hello World'),
document.getElementById('main')
);
</script>
</body>
</html>
我有这个错误。你能帮忙吗?
'Button' is not defined
最佳答案
更新
对于 v3(最初编写此答案时),窗口变量是 'material-ui'
。在 v4 中,此更改为 'MaterialUI'
。答案已相应更新。
由于您在示例中没有使用 JSX,因此不需要 babel。您只需在通过 const {Button} = window['MaterialUI'];
使用之前定义 Button
即可。
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title>Bridge Bridge.React.Examples</title>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,500">
<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
<script crossorigin src="https://unpkg.com/react@16/umd/react.development.js"></script>
<script crossorigin src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script>
<script crossorigin src="https://unpkg.com/@material-ui/core/umd/material-ui.development.js"></script>
</script>
</head>
<body>
<div id="main"></div>
<script>
const {
Button
} = window['MaterialUI'];
ReactDOM.render(
React.createElement(Button, {variant: 'contained', color: 'primary'}, 'Hello World'),
document.getElementById('main')
);
</script>
</body>
</html>
关于javascript - React Material-UI 纯 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54636839/