【发布时间】:2020-03-25 17:43:41
【问题描述】:
index.html
<html>
<head>
<title>Webpack and React</title>
<link href="https://maxcdn.bootstrapcdn.com/bootswatch/3.3.6/cerulean/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div id="app">hello</div>
<script src="index.js"></script>
</body>
</html>
index.js
import React from "react";
import ReactDom from "react-dom";
import {BrowserRouter as Router, Route} from "react-router";
import Layout from "./pages/Layout";
import Featured from "./pages/Featured";
import Archives from "./pages/Archives";
import Settings from "./pages/Settings";
const app = document.getElementById('app');
ReactDom.render(
<Router>
<Route path = "/" component={Layout}/>
</Router>,
app);
布局.js
import React from "react";
export default class Layout extends React.Component{
render(){
return(
<div>
<h1>Discussion Board</h1>
</div>
);
}
}
我按照网上的例子学习了react router with webpack,但是报错了:
Warning: React.createElement: type is invalid -- expected a string (for built-in components) or a
class/function (for composite components) but got: undefined. You likely forgot to export your
component from the file it's defined in, or you might have mixed up default and named imports.
我找不到导致错误的原因。有人说我可能不会添加导出默认但我已经添加了它。还是报错。
【问题讨论】:
-
你确定你的 html 中有一个带有
id或app的元素吗? -
@dev_junwen ys,它在 index.html 中有 id。另外,这个错误只有在我使用反应路由器时才会出现。
-
您的
Featured、Archives和Settings组件怎么样?您是否将它们包含在您的路线中?
标签: javascript reactjs webpack react-router