2016-12-06 169 views
-1

我试图浏览到这样一条不同的路线:反应路由器导航不工作

import React from 'react'; 
import { browserHistory } from 'react-router' 

class MyComponent extends React.Component { 

    navigate() { 

     browserHistory.push('/some-page') 

    } 

    render() { 
     return (   
      <button onClick={this.navigate.bind(this)} />Navigate</button> 
     ); 
    } 

} 

export default MyComponent; 

我的路线设置:

ReactDOM.render(
    <Router history={hashHistory}> 
     <Route path='/' component={Layout}> 
      <IndexRoute component={Home}></IndexRoute> 
      <Route path='/some-page' component={SomePage}></Route> 
     </Route> 
    </Router>, 
    document.getElementById('app') 
); 

当浏览器确实这个运行网址改变,但这就是发生的一切。我实际上并没有被引导到那条路线。有什么我失踪?

+0

你可以显示你的路线文件? –

+0

为什么你声明browserHistory和使用hashHistory? –

回答

2

您需要保持一致;您为您的路由器声明hashHistory,但使用browserHistory作为您的实际路由。

哈希历史记录将在'#/'后追加路径,browserHistory使用最新的HTML5推送状态实际更改URL而不发出任何请求。

每个都做他们应该的,但你正在听东西,并说别的东西;)