2017-07-26 1 views
2

Hallo ich bin neu in React Ich möchte die Layout Render in einigen bestimmten Seiten. Unten ist mein Code und ich möchte Layout nicht werden machen, wenn LandingPage machtVerhindern Rendering eines bestimmten Layouts, wenn auf einer bestimmten Route mit Router dom v4 reagieren?

import React, { Component } from 'react'; 
import {createStore, applyMiddleware} from "redux" 
import allReducers from "./reducers" 
import thunk from 'redux-thunk'; 
import { Provider } from 'react-redux' 
import { 
    BrowserRouter as Router, 
    Route, 
    Link 
    } from 'react-router-dom'; 


import LandingPage from './components/LandingPage'; 
import Login from './components/Login'; 
import Registration from './containers/Registration'; 

const store = createStore(allReducers, 
    applyMiddleware(thunk) 

); 

class App extends Component { 
    render() { 
     return (
     <Provider store={store}> 
     <Router > 
      <div> 
     <Route exact path="/" component={LandingPage} /> //** don't render on this page 
     <Layout> 
      <Route path="/login" component={Login} /> 
      <Route path="/signup" component={Registration} /> 
      </Layout> 
     </div> 
     </Router> 
    </Provider> 
    ); 
    } 
} 
export default App; 

eine Idee !!

Antwort

1

Sie könnten es erreichen, indem das Routing zu einer separaten Komponente, die die Layout enthält, ist die Route nicht / ist, und dann haben die verschachtelten Routen in dieser Komponente wie

import {Switch} from 'react-router' 
class App extends Component { 
    render() { 
     return (
     <Provider store={store}> 
     <Router > 
      <Switch> 
      <Route exact path="/" component={LandingPage} /> //** don't render on this page 
      <Route path="/:someParam" component={MyLayout}/> 

     </Switch> 
     </Router> 
    </Provider> 
    ); 
    } 
} 

class MyLayout extends React.Component { 
    render() { 
      return (

      <Layout> 
       <Route path="/login" component={Login} /> 
       <Route path="/signup" component={Registration} /> 
       </Layout> 
     ) 

    } 

} 
+0

es nicht für mich gearbeitet hat :( – ashwintastic

+0

Was ist das Problem, das Sie gegenüberstellen, erhalten Sie einige Fehler. Überprüfen Sie das Update und nutzen Sie den Schalter von 'Reagieren-Router' –

+0

cooler Mann, es funktioniert ohne Schalter versucht haben – ashwintastic

Verwandte Themen