2017-05-03 26 views
0

Ich bin neu mit Reagieren Router und ich habe versucht, eine einfache Sache zu tun, hoffe ich. In der Tat möchte ich verhindern, dass mein Browser versucht, eine URL zu laden, ich hoffe, ich werde klar sein.Verhindern "URL Aktion/Laden" von React Router

In der Tat habe ich eine NavBar mit mehreren Tasten darauf und wenn ich auf einen von ihnen, die URL geändert, aber nichts passiert, ist die Wiedergabe genau das gleiche. Before clickAfter click

Aber wenn ich oder Rechtsklick Enter gedrückt und ‚Open Link in einem neuen Tab‘ eine Fehlermeldung sichtbar (Cannot GET /140009647639368)

Es ist, was ich reparieren will das gleiche zu erhalten Ergebnis wie vorher.

Ich gebe Ihnen nächste Beispielcode, um Ihnen zu helfen. Ich hoffe ich war klar und bedanke mich im Voraus für deine Hilfe.

*`navbarComponent.js`* 


     render(){ 
      return (
       <Navbar inverse fluid> 
        <Navbar.Header> 
        <Navbar.Brand> 
         Beam Viewer 
        </Navbar.Brand> 
        <Navbar.Toggle /> 
        </Navbar.Header> 
       <Navbar.Collapse> 
        <Nav> 
        {this.props.BpmList.map((bpm, index) => (
         <LinkContainer key={index} to={'/'+bpm.key}><NavItem>{bpm.name}</NavItem></LinkContainer> 
        ))} 
        </Nav> 
       </Navbar.Collapse> 
       </Navbar> 
      ); 

      } 

    ----------------------------------------------------------------------------- 

    *index.js* 

     class Main extends React.Component{ 

     componentWillReceiveProps(nextProps){ 

      console.log(nextProps); 

     } 

      render(){ 
      return (
       <div> 
       <NavBar /> 
       <Options /> 
       <Infos /> 
       <Video /> 
       </div> 
      ) 
      } 
     } 



    ReactDom.render(<Provider store={store}> 
        <Router history={browserHistory}> 
         <Route path='/' component={Main}/> 
         <Route path='/:bpmKey' component={Main}/> 
        </Router> 
        </Provider>, 
        document.getElementById('main')); 
+0

Ihr Problem ist am meisten wie auf Web-Server-Seite, nicht auf Router. Welchen Server benutzen Sie? Sie müssen eine Weiterleitung zu index.html bereitstellen, anstatt zuzulassen, dass die Suche nach einem nicht vorhandenen Dokument fehlschlägt. – Igor

+0

Ich habe einen Flaschenserver verwendet. –

+0

Soweit ich weiß, werden Umleitungen unterstützt. Allerdings, wenn die Verwendung von Hashes in URL ist akzeptabel für Sie Weiterleitungen lohnt sich nicht – Igor

Antwort

0

Wenn Sie das tun, versucht der Browser diese Route von Ihrem Server zu erhalten. Da Ihr Server es nicht hat, zeigt es diesen Fehler an. Eine Möglichkeit, es zum Laufen zu bringen, ist die Verwendung von hashHistory anstelle von browserHistory.

+0

Das ist Arbeit! Vielen Dank :) Was sind die Unterschiede zwischen Hash und Browser? –

+0

Könnten Sie bitte als Antwort antworten? ;) – juliobetta

+0

Ja, ich muss 3 Minuten warten, seit du es gepostet hast :) –