【发布时间】:2016-03-01 05:53:36
【问题描述】:
我正在尝试新的 react-router 1.0.0,但收到了我无法解释的奇怪警告:
警告:失败的 propType:无效的 prop `component` 提供给 `路线`。
警告:为 `Route` 提供了无效的未定义`component`。
应用很简单:
import React from 'react';
import ReactDOM from 'react-dom';
import { Router, Route } from 'react-router';
import App from './components/app';
var Speaker = require('./components/speaker');
ReactDOM.render((
<Router>
<Route path="/" component={App}>
// This is the source of the warning:
<Route path="speaker" component={ Speaker }/>
</Route>
</Router>
), document.getElementById('react-container'));
speaker.jsx:
import React from 'react';
var Speaker = React.createClass({
render() {
return (
<h1>Speaker</h1>
)
}
});
module.exoprts = Speaker;
app.jsx 只有以下 render() 函数:
render() {
return (
<div>
<Header title={this.state.title} status={this.state.status} />
{this.props.children}
</div>);
}
当我输入到#/speaker 或#speaker 的路线时 - 除了标题之外什么都没有显示。请帮忙。
【问题讨论】:
-
是您的代码或问题中的拼写错误,
module.exoprts?另外,为什么要将 ES6 与 ES5 混合使用?到处使用导入而不是require -
哇!哇!就是这样!我花了 50 分钟在谷歌上搜索,尝试了不同的导入样式 - ES5 和 ES6,但这是一个简单的错字。非常感谢@limelights!你是老板!
-
保持一种风格会在未来减少这些错误,很高兴它成功了!
-
我保证我会继续保持一种风格:) 甚至会使用“class DaDum”而不是 React.createClass({})。再次感谢!
-
在我使用 ES2015 的情况下,我完全忘记了导出行。
标签: javascript reactjs react-router react-jsx