为了账号安全,请及时绑定邮箱和手机立即绑定

前端项目 react react-router v4 应该怎么配置

前端项目 react react-router v4 应该怎么配置

人到中年有点甜 2019-03-29 14:15:50
问题做一个后台管理系统, 使用create-react-app创建项目, 在index.js里面怎么配置route, 界面是左右栏布局, 左栏是导航菜单, 导航菜单自己单独写的组件, 点击菜单右边界面有相应的跳转, 分为 NavMenuComponent, MainComponent, 我在App.js 引入这2个组件, 路由应该怎么写, 才能达到要求.index.js 里面我是这样写的import { BrowserRouter } from "react-router-dom";ReactDOM.render(  <BrowserRouter>    <AppRoute />  </BrowserRouter>,  document.getElementById("root"));AppRoute.jsexport default class AppRoute extends React.Component {  render() {    return (      <Switch>        <Route          path="/"          component={App}        />      </Switch>    );  }}App.js<Layout style={{ minHeight: "100vh" }}><Sider  collapsible  collapsed={this.state.collapsed}  onCollapse={this.onCollapse}>  <div className="logo" />  <NavMenu /></Sider><Layout>  <Header style={{ background: "#fff", padding: 0 }} />  <Content style={{ margin: "0 16px" }}>    <Breadcrumb style={{ margin: "16px 0" }}>      <Breadcrumb.Item>User</Breadcrumb.Item>      <Breadcrumb.Item>Bill</Breadcrumb.Item>    </Breadcrumb>    <div style={{ padding: 24, background: "#fff", minHeight: 360 }}>      <Route render={props => <Main {...props} />} />    </div>  </Content>  <Footer style={{ textAlign: "center" }}>    Ant Design ©2016 Created by Ant UED  </Footer></Layout></Layout>如果我直接引入NavMenu.js, props里面就没有history相关的属性NavMenu.js    <Menu        theme="dark"        defaultSelectedKeys={["/promoter/list"]}        defaultOpenKeys={["/promoter"]}        mode="inline"        onSelect={this.handleMenuSelect}          >        <SubMenu          key="/promoter"          title={            <span>              <Icon type="user" />              <span>推广用户管理</span>            </span>          }        >      <Menu.Item key="/promoter/list">代理用户管理</Menu.Item>    </SubMenu>    <SubMenu          key="/rule"          title={            <span>              <Icon type="desktop" />              <span>规则管理</span>            </span>          }        >      <Menu.Item key="/rule/divide">佣金分成规则设置</Menu.Item>    </SubMenu>  </Menu>
查看完整描述

1 回答

?
哆啦的时光机

TA贡献1779条经验 获得超6个赞

NavMenu.js, props里面就没有history相关的属性 , 是因为 NavMenu.js 不是路由组件

通过react-router 4 的 withRouter 来使非路由组件具有路由组件的属性

用法如下


import { withRouter } from 'react-router-dom'


@withRouter

class NavLinkBar extends React.Component {

}


查看完整回答
反对 回复 2019-04-10
  • 1 回答
  • 0 关注
  • 390 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号