2017-07-25 120 views
0

React Route Load TestReact路由器:渲染新的視圖無頁面刷新

您好!我想要做的是重做我的反應路由器,以便NavLink在點擊時呈現一個全新的頁面,而不是渲染在div底部,如上面的gif所示。

這是我的主要App.js成分含量:

import React, { Component } from 'react'; 
import './App.css'; 
import {BrowserRouter as Router, Switch, Route} from 'react-router-dom'; 
import Home from './Home.js'; 
import About from './About.js'; 
import September from './September.js'; 
import Trilogy from './Trilogy.js'; 

class App extends Component { 
    render() { 
    return (
<Router> 
<div> 
<Switch> 
    <Route exact path = '/' component={Home} /> 
    <Route path = '/about/' component = {About} /> 
    <Route path = '/september/' component = {September} /> 
    <Route exact path = '/september/trilogy/' component = {Trilogy} /> 
</Switch> 
    </div> 
    </Router> 
); 
} 
} 
export default App; 

的主頁組件的代碼,其中認爲在家庭中的頁面使用的NavBar。

import React, { Component } from 'react'; 
import {BrowserRouter as Router, NavLink, Switch, Route} from 'react-router-dom'; 
import logo from './logo.png'; 
import About from './About.js'; 
import September from './September.js'; 
import Trilogy from './Trilogy.js'; 

let NavBar =() => { 
    return (
    <div> 
    <h2 className = "container2"><NavLink to = '/about/'>About</NavLink> </h2> 
    <img src = {logo} className = "somersetLogo" alt = "somersetLogo" /> 
    <h2 className = "container" ><a href="mailto:[email protected]" className = "mailto">Contact</a></h2> 
    </div> 
) 
} 

class Home extends Component { 
render(){ 
    return (
    <Router> 
    <div> 
    <NavBar /> 
    <Switch> 
    <Route exact path = '/about/' component = {About} /> 
    </Switch> 
    </div> 
    </Router> 
    ) 
    } 
} 

export default Home; 

任何想法出了什麼問題?任何幫助,將不勝感激!謝謝!

+0

你的反應路由器版本是什麼? –

回答

1

如果您使用react v4或更高版本,應該是這樣的。

import { Link } from 'react-router-dom'; 

<Link to='/about'> 
    About 
</Link> 

爲什麼你在不需要Home組件再次定義路由器。在App組件中保留路由配置就足夠了。希望這可以幫助。快樂的編碼!

+0

感謝幫助!不幸的是,該解決方案不起作用。鏈接似乎功能完全像NavLink。點擊是將信息呈現在同一個div中,但不是另一個頁面。是否有可能使用React Router做一個多頁面的應用程序,或者我要求不可能做什麼? –

+0

編輯:我想通了!你的方式是對的!我把鏈接放在Switch組件後,擺脫了NavBar,它工作!萬分感謝! @Ravindra Ranwala –

相關問題