2017-08-05 26 views
0

私は反応経路経路ライブラリを反応アプリケーションに実装しようとしました... ここに私の主要なコンポーネントコードです。私はちょうど '<Route path="/" component={App} />' 'なし' <Route path="/admin" component={Admin} /> 'Appコンポーネントがレンダリングされますが、私は両方を持っているとき、何もレンダリングされません。私が間違って何かしていたのだろうと思っていた。何らかの理由で反応経路の反応経路が反応ルータを使って機能しない

app.jsは

import React from 'react'; 
import ReactDOM from 'react-dom'; 
import MuiThemeProvider from 'material-ui/styles/MuiThemeProvider'; 
import injectTapEventPlugin from 'react-tap-event-plugin'; 
import { 
    BrowserRouter as Router, 
    Route, 
    Link 
} from 'react-router-dom'; 

import LandingPage from './landingpage'; 
import Admin from './admin'; 

injectTapEventPlugin(); 

class App extends React.Component{ 
    render(){ 
    return (
     <MuiThemeProvider> 
     <LandingPage /> 
     </MuiThemeProvider> 
    ); 
    } 
} 

ReactDOM.render(
    <Router> 
    <Route path="/" component={App} /> 
    <Route path="/admin" component={Admin} /> 
    </Router>, 
    document.getElementById('spot') 
); 

HERESに私の管理コンポーネント

import React from 'react'; 

class Admin extends React.Component { 
    render(){ 
    return (
     <div>Holla</div> 
    ); 
    } 
} 

export default Admin; 

と私のWebPACK構成

module.exports = { 
    entry: [ 
    './src/app.js' 
    ], 
    output: { 
    path: __dirname, 
    filename: "bundle.js", 
    publicPath: '/' 
    }, 
    module: { 
    loaders: [{ 
     exclude: /node_modules/, 
     test: /\.jsx?$/, 
     loader: 'babel' 
    }] 
    }, 
    devServer: { 
    historyApiFallback: true, 
    contentBase: './', 
    hot: true, 
    } 
}; 
+1

のために利用可能ですようにするには、排他的にあなたのルートをレンダリングするためにスイッチを追加しようとしたことがありますか? https://reacttraining.com/react-router/web/api/Switch ます。また、このように、あなたの家のパスに正確な属性を追加する必要があります。 <ルート正確なパス=「/」コンポーネントが{App} /> <経路パス= "/ admin"コンポーネント= {管理者} /> eulloa

+0

ありがとうございました..正確なより微妙な答えでした –

答えて

2

が反応-ルータ4を一つだけ子を受け入れます。試してみてください:

<Router> 
    <Switch> 
     <Route path="/" component={App} /> 
     <Route path="/admin" component={Admin} /> 
    </Switch> 
    </Router>, 

または

<Router> 
    <div> 
     <Route path="/" component={App} /> 
     <Route path="/admin" component={Admin} /> 
    </div> 
    </Router>, 
+0

反応ルータからスイッチをインポートすることを忘れないでください - ドーム!しかし、アレックスは正しいです。 – archae0pteryx

0

私はあなたの問題はMUIのテーマプロバイダがあなたの管理者のためのコンポーネントおよびルータは一つだけの子供を受け入れるが利用可能でないとと思います。代わりに、ここにあなたのmuithemeproviderを配置してみてください。

ReactDOM.render(

    <Router> 
    <MuiThemeProvider> 
    <Route path="/" component={App} /> 
    <Route path="/admin" component={Admin} /> 
    </MuiThemeProvider>  
    </Router>, 
    document.getElementById('spot') 
); 

それはすべてのコンポーネントだけでなく、アプリケーション

関連する問題