2017-06-19 44 views
-1

我正在努力反應路由4,試圖猜測爲什麼它只能在主模塊中工作。反應路由器4只在主模塊中工作

我的代碼:

import React from 'react' 
import ReactDOM from 'react-dom' 
import { BrowserRouter as Router, Switch, Route } from 'react-router-dom' 
import Enterprise from './containers/Enterprise' 
import Provider from './containers/Provider' 
import Home from './containers/Home' 

let render =() => { 

    ReactDOM.render(
    <Router> 
     <div> 
     <Switch> 
      <Route exact path="/" component={Home}/> 
      <Route exact path="/enterprises" component={Enterprise} > 
      <Route exact path="/providers" component={Provider} /> 
     </Switch>       
     </div> 
    </Router>, 
    document.getElementById('root') 
) 
} 

render() 

這將停止儘快工作,我宣佈裏面AppContainer的路線(生活在一個分隔的文件)。像:

AppContainer.js

imports... 

class AppContainer extends Component { 

    shouldComponentUpdate() { 
    return false 
    } 

    render() { 

    return (
     <Header /> 

     <Sidebar /> 

     <main> 
      <Switch> 
      <Route exact path="/" component={Home}/> 
      <Route exact path="/enterprises" component={Enterprise} > 
      <Route exact path="/providers" component={Provider} /> 
      </Switch> 
     </main> 

     <Footer /> 
    ) 
    } 
} 

export default AppContainer 

main.js

​​

我使用的WebPack模塊,而不是使用代碼分裂所以...我很困惑。我在網上搜索了很多這種在分離模塊中工作的例子(即使源代碼在單個文件中顯示)。

任何線索?

+0

是' AppContainer'是否有反應 - 熱載組件?如果是這樣,我認爲這是錯的。在'App'裏面放置'''AppContainer'和'Router'。 – heyhugo

+0

是的,我有熱重裝。我在AppContainer內部有一個組件。其實這是我想呈現我的網頁,所以這就是我想要定義我的路線(或至少通過它們作爲道具,但沒有任何兩次嘗試)。 – mayid

+0

因此,我禁用HMR,它也不起作用。 – mayid

回答

-1

似乎問題是shouldComponentUpdate()。我現在正在使用一個常量,它的工作原理。

AppContainer.js

進口...

const AppContainer =() => (

     <div className="page-wrapper"> 

      <Header /> 

      <div className="page-container"> 

       <Sidebar /> 

       <main>   
        <Switch>   
        <Route exact path="/" component={Home} /> 
        <Route exact path="/enterprises" component={Enterprise} > 
        <Route exact path="/providers" component={Provider} />   
        </Switch> 
       </main>            
      </div> 

      <Footer /> 

     </div> 
) 

(順便說一句,該塊其實在去命名頁面的另一個文件的組成部分。我只是簡化了這裏我的代碼)

+0

有關反對票的評論將不勝感激。我是新的反應和反應路由器,我真的研究了很多關於這個問題。所以,我盡了全力。 – mayid