2016-12-06 9 views
-1

Ich versuche so zu einer anderen Route zu navigieren:reagieren-Router Navigation funktioniert nicht

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; 

Meine Routen Setup:

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') 
); 

Wenn dies der URL läuft in der Browser in der Tat tut ändern, aber das ist alles, was passiert. Ich werde nicht wirklich auf diese Route geleitet. Gibt es etwas, das mir fehlt?

+0

Können Sie Ihre Routen-Datei anzeigen? –

+0

Warum haben Sie browserHistory deklariert und verwendet hashHistory? –

Antwort

2

Sie müssen konsistent sein; Sie haben hashHistory für Ihren Router aber browserHistory für Ihr tatsächliches Routing deklariert.

Hash History fügt den Pfad nach '# /' an, browserHistory verwendet den neuesten HTML5-Push-Status, um die URL tatsächlich zu ändern, ohne irgendwelche Anforderungen zu stellen.

Jeder macht was sie sollen, aber Sie hören etwas und sagen etwas anderes;)

Verwandte Themen