2017-09-06 52 views
0

基本上,路由組件不會觸發點擊更改路徑的鏈接;但刷新後,顯示正確的組件。什麼可以解決這個問題?反應路由器將無法工作而不刷新

應用組件:

import React, { Component } from 'react'; 
/** 
* Import Router 
*/ 
import { BrowserRouter as Router, Route, Switch } from 'react-router-dom'; 
/** 
* Import custom components 
*/ 
import IndexComponent from '../components/index_component'; 
import LoginComponent from '../components/login_component'; 
/** 
* Import containers 
*/ 
import Navbar from '../containers/Navbar'; 
import Footer from '../containers/Footer'; 

export default class App extends Component { 
    render() { 
    return (
     <div> 
      <Navbar /> 
      <Router> 
       <Switch> 
        <Route path="/login" component={LoginComponent} /> 
        <Route path="/" component={IndexComponent} /> 
       </Switch> 
      </Router> 
      <Footer /> 
     </div> 
    ); 
    } 
} 

登錄組件:

import React, { Component } from 'react'; 

class LoginComponent extends Component { 
    render() { 
     return (
      <div>LOGIN COMP</div> 
     ); 
    } 
} 

export default LoginComponent; 

回答

0

你應該附上裏面<Router>所有的組件,這將解決您的問題。

<Router> 
    <Navbar /> 
    <Switch> 
     <Route path="/login" component={LoginComponent} /> 
     <Route path="/" component={IndexComponent} /> 
    </Switch> 
    <Footer /> 
</Router> 
+0

的問題依然存在,甚至通過這些變化,恐怕 –

0

嘗試以下解決方案:

import React from 'react'; 
    import { BrowserRouter as Router, Route, Switch } from 'react-router-dom'; 
    import IndexComponent from '../components/index_component'; 
    import LoginComponent from '../components/login_component'; 


     <Router> 
      <Switch> 
      <Route path="/login" component={LoginComponent} /> 
      <Route path="/" component={IndexComponent} /> 
      </Switch> 
     </Router>