繁体   English   中英

如何使用React Router正确实现侧边栏?

[英]How to properly implement a sidebar with react router?

我正在尝试使用react和react路由器构建一个主从视图,这种尝试是试图模仿Creative tim的material-dashboard-react,这是我的实际代码:

/* eslint-disable */
import React from "react";
import PropTypes from "prop-types";
import { Switch, Route, Redirect } from "react-router-dom";
import withStyles from "@material-ui/core/styles/withStyles";

import dashboardRoutes from "./routes/test.js";

import dashboardStyle from "./jss/styles";
import Sidebar from "./components/sidebar.jsx"

import image from "./image/sidebar-2.jpg";
import logo from "./logo.svg";

const switchRoutes = (
  <Switch>
    {dashboardRoutes.map((prop, key) => {
      return <Route path={prop.path} component={prop.component} key={key} />;
    })}
  </Switch>
);

class App extends React.Component {
  constructor(props) {
    super(props);

    this.state = {
      mobileOpen: false
    };    
  }

  handleDrawerToggle = () => {
    this.setState({ mobileOpen: !this.state.mobileOpen });
  };  

  render() {
    const { classes, ...rest } = this.props;
    return (
        <div>
          <Sidebar
            routes={dashboardRoutes}
            logoText={"Davidsito"}
            logo={'https://upload.wikimedia.org/wikipedia/commons/thumb/a/a7/React-icon.svg/1000px-React-icon.svg.png'}
            image={image}
            handleDrawerToggle={this.handleDrawerToggle}
            open={this.state.mobileOpen}
            color="blue"
            {...rest}
          />
          <div className={classes.mainPanel} ref="mainPanel">
            {console.log(dashboardRoutes[3])}
            <div className={classes.content}>
              <div className={classes.container}>
                <Route 
                  path={dashboardRoutes[3].path} 
                  component={dashboardRoutes[3].component} 
                  key={1} 
                />;
              </div>
            </div>            
          </div>          
        </div>
    );
  }
}

App.propTypes = {
  classes: PropTypes.object.isRequired
};

export default withStyles(dashboardStyle)(App);

因此,行为应为我选择一些东西并在侧边栏旁边进行渲染,如下所示:

侧边栏 但是当select无法正确呈现时,我该怎么办? 选

确保已将App组件与BrowserRouter一起BrowserRouter在index.js中,如下所示:

ReactDOM.render(<BrowserRouter><App/></BrowserRouter>, document.getElementById('root'));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM