【问题标题】:Prevent rendering of a particular layout when on a specific route with react router dom v4?使用反应路由器dom v4在特定路线上防止呈现特定布局?
【发布时间】:2017-07-26 09:08:07
【问题描述】:

您好,我是 React 新手,我希望 Layout 在某些特定页面中呈现。 下面是我的代码,我希望LayoutLandingPage 渲染时不被渲染

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;

任何想法!

【问题讨论】:

    标签: reactjs react-router-dom


    【解决方案1】:

    您可以通过路由到包含 Layout 的单独组件来实现它

    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>
              )
    
         }
    
    }
    

    【讨论】:

    • 您面临的问题是什么,您是否遇到了一些错误。检查更新并使用“react-router”中的 Switch
    • 乐于助人:)
    猜你喜欢
    • 2017-12-21
    • 2023-01-13
    • 1970-01-01
    • 1970-01-01
    • 2022-08-22
    • 1970-01-01
    • 1970-01-01
    • 2021-03-20
    • 1970-01-01
    相关资源
    最近更新 更多