2016-12-06 3 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') 
); 

Когда это работает URL в браузер делает действительно но это касается всего, что происходит. На самом деле я не направляюсь на этот маршрут. Есть что-то, что мне не хватает?

+0

Можете ли вы показать свой файл маршрутов? –

+0

Почему вы объявили браузерИстория и использовали hashHistory? –

ответ

2

Вам необходимо быть последовательным; вы указали hashHistory для своего маршрутизатора, но используете browserHistory для вашей фактической маршрутизации.

История Хэша добавит путь после '# /', browserHistory использует новейшее состояние нажатия HTML5, чтобы фактически изменить URL-адрес без каких-либо запросов.

Каждый делает то, что они предполагают, но вы что-то слушаете и говорите что-то еще;)