【发布时间】:2015-10-22 13:20:22
【问题描述】:
index.js - 页面/主页
import React, { Component } from 'react';
import ApogeeLogo from '../../components/ApogeeLogo';
import {Router, RouteHandler} from 'react-router';
import { Tabs, Tab, FlatButton } from 'material-ui';
export default class Home extends Component {
static contextTypes = {
router : React.PropTypes.func
}
render () {
return <div className="container">
<Tabs>
<Tab label="Item One" >
ITEMS
</Tab>
<Tab label="Item Two" >
ITEMS
</Tab>
<Tab
label="Item Three"
route="/home"
onActive={this._onActive} />
//ISSUE HERE
</Tabs>
<RouteHandler />
</div>;
};
_onActive(tab){
this.context.router.transitionTo(tab.props.route);
}
}
routes.js
const Routes = (
<Route name="root" path="/" handler={Root}>
<Route name="app" handler={App}>
<Route name="home" handler={Home} />
<Route name="about" handler={About} />
<DefaultRoute handler={Home} />
</Route>
<Route name="login" handler={Login} />
<DefaultRoute handler={Login} />
</Route>
);
export default Routes;
我在浏览器控制台中收到此错误
未捕获的类型错误:无法读取未定义的属性“路由器”
我看到有些人将这个问题放在其他地方,但没有一个人得到明确的答复。
这是怎么回事?
【问题讨论】:
-
你使用的是什么版本的 React?
-
什么版本的 react-router?你可以查看“升级指南”(github.com/rackt/react-router/blob/master/…),上面写着要继续使用
React.createClass和 mixins 而不是 ES6 类和上下文。 -
绑定
onActive函数,就像这样,_onActive = (tab) => {},应该可以修复它。
标签: javascript reactjs react-router