【发布时间】:2017-08-19 06:39:27
【问题描述】:
我正在尝试更改点击页面。 这里是点击功能
import React, { Component } from 'react';
import {BrowserRouter as Router,Route} from 'react-router-dom';
import { browserHistory } from 'react-router';
class Buttons extends Component {
skipClick(){
browserHistory.push('/sessionstate2');
}
render() {
return (<a className={skipShow} onClick={this.skipClick}>Skip</a>)
}
}
和 index.js
import browserHistory from 'react-router';
ReactDOM.render(
<Router history={browserHistory}>
<div>
<Route exact path="/" component={App} />
<Route exact path="/sessionstate1" component={Template1}/>
<Route exact path="/sessionstate2" component={Template2}/>
<Route exact path="/sessionstate3" component={Template3}/>
</div>
</Router>,
document.getElementById('root')
);
它正在给予
未捕获的类型错误:无法读取未定义的属性“推送”
你能告诉我我在这里做错了什么吗?
【问题讨论】:
-
您需要将路由器上下文提供给您尝试从中访问路由器的组件。这可能会根据您使用的 RR 版本而有所不同。 stackoverflow.com/questions/39174814/…
-
您可以尝试将路由器中的导入更改为:
import {browserHistory} from 'react-router'; -
@duhaime 做了 dat 但仍然无法正常工作
-
你用的是什么版本的 react-router?较新的版本应该在 index.js 中使用类似 `import {browserHistory, Router} from 'react-router' 的东西。另外,您是否使用 react-router-dom ?如果没有,我会删除它以简化...
-
不确定,但在绑定
onClick事件后尝试,您正在使用 es6,所以可能是因为面临的问题,试试这个:onClick={this.skipClick.bind(this)}。
标签: javascript reactjs react-router