2017-09-26 627 views
1

我從react Router v2升級到v4,然後一切都被打破了!我搜索了谷歌的錯誤,並瞭解到最新版本的反應路由器是完全重寫的。我試圖按照文檔更新我的應用程序。不過,我從官方文檔複製代碼,它工作得很好但是當我使用我的組件和結構時,它不是路由。我無法弄清楚實際的問題。一切似乎確定,但仍然不是路由。反應路由器工作不正常

更新

我沒有搞清楚的問題。它是從Route渲染組件。我在我的代碼中使用了Component,但它應該是component,這就是爲什麼我的代碼無法工作。它沒有事件拋出一個錯誤!

下面這段代碼工作路由

import React from 'react'; 
import { render } from 'react-dom'; 

import { 
    BrowserRouter as Router, 
    Route, 
    Link 
} from 'react-router-dom'; 

const About =() => (
    <div>About page</div> 
) 
const Home =() => (
<div>Home component</div> 
) 
const AppComponent =() => (
<div>App component is rendered as well</div> 
) 

render(
    <Router> 
    <div> 
     <ul> 
     <li><Link to="/">Home</Link></li> 
     <li><Link to="/about">About</Link></li> 
     <li><Link to="/contact">Contact</Link></li> 
     </ul> 

     <hr/> 

     <Route exact path="/" component={Home}/> 
     <Route exact path="/" component={AppComponent}/> 
     <Route path="/about" component={About}/> 
    </div> 
    </Router>, 
    document.querySelector('#app') 
) 

下面這段代碼是不工作的路線

import React from 'react'; 
import { render } from 'react-dom'; 

import { 
    BrowserRouter as Router, 
    Route, 
    Link 
} from 'react-router-dom'; 

const SignUp =() => (
    <div>This is Sign up Page</div> 
) 
const Home =() => (
<div>Home component</div> 
) 
const AppComponent =() => (
<div>App component is rendered as well</div> 
) 

render(
    <Router> 
    <div className="container"> 
     <nav className="navbar navbar-default"> 
      <div className="container-fluid"> 
      <div className="navbar-header"> 
       <Link to="/" className="navbar-brand">Red Dice</Link> 
      </div> 

      <div className="collapse navbar-collapse"> 
       <ul className="nav navbar-nav navbar-right"> 
       <li><Link to="/signup">Sign up</Link></li> 
       </ul> 
      </div> 
      </div> 
     </nav> 

    <Route exact path="/" Component={Home} /> 
    <Route exact path="/" Component={AppComponent} /> 
    <Route path="/signup" Component={SignUp} /> 
    </div> 

</Router>, 
    document.querySelector('#app') 
) 

我有一個問題關於browserHistory。在舊版本中,我們有,但在新版本反應路由器不提供這一點。那麼我可以在新版本中使用什麼來使用browserHistory?

+0

使用閱讀更多關於這個'反應,路由器dom'這是最新的。 – Umesh

+0

請先查看代碼段。我已經用'react-router-dom' –

+0

我弄清楚了這個問題。它是從'Route'渲染組件。我在我的代碼中使用'Component',但它應該是'component',這就是爲什麼我的代碼不工作。它沒有事件拋出一個錯誤! –

回答