我收到此错误消息:index.js:920 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. Check the render method of Header.
我在渲染方法中有这个:
return (
<Router>
<div>
<Route strict path="/" component={Header} />
</div>
</Router>
);
在标题中我有
export default class Header扩展了React.Component {
render() {
return (
<div className="container">
<ul>
<div className="links">
<li><Link to="quizzes">Quizzes</Link></li>
</div>
<div className="links">
<li><Link to="categories">Categories</Link></li>
</div>
<div className="links">
<li><Link to="create">Create</Link></li>
</div>
</ul>
</div>
);
}
}
所以它似乎在说我没有出口它,但显然我有。任何想法?
答案 0 :(得分:1)
消息是说“检查标题的渲染方法”
所以错误在Header
组件中。
我的猜测是您从Link
导入了react-router
组件
从react-router v4开始,react-router分为三个包
现在Link
组件位于react-router-dom
包中
因此,您需要安装react-router-dom
并将import语句更改为:
import {Link} from 'react-router-dom'
答案 1 :(得分:0)
您导入的链接组件来自'react-router'这是问题所在,这适用于react-router版本&lt; 4.0。从react-router version4开始,这个Link包是react-router-dom的一部分。所以你需要先安装react-router-dom:
npm install --save react-router-dom
像这样导入:
import { Link } from 'react-router-dom'