繁体   English   中英

如何为React-Router路由器设置基本名称

[英]How to set a basename for react-router Router

我该如何配置基本名称,或在url中保留一个路径,例如localhost:8000/app ,当我必须重定向到另一条路由时,路由器将这个/app标识为url的一部分并且不进行更改,这就是我的组件结构。

import React from 'react';
import { Router, Route, browserHistory, IndexRoute } from 'react-router';
<Router history={browserHistory} >
  <Route component={App}>
    <Route path="/" component={Home} />
    <Route path="/login" component={LoginContainer} />
    <Route path="apresentacao">
      <IndexRoute component={NameContainer} />
      <Route path="2" component={HsContainer} />
      <Route path="3" component={McContainer} />
      <Route path="4" component={MpvContainer} />
    </Route>
  </Route>
</Router>

如果您使用的是React Router v4,则可以使用Router组件的basename属性更改应用程序的基础。

import React from "react";
import { Router, Route, browserHistory, IndexRoute } from "react-router";

class App extends React.Component {
  render() {
    return (
      <Router history={browserHistory} basename="/app">
        <Route component={App}>
          <Route path="/" component={Home} />
          <Route path="/login" component={LoginContainer} />
          <Route path="apresentacao">
            <IndexRoute component={NameContainer} />
            <Route path="2" component={HsContainer} />
            <Route path="3" component={McContainer} />
            <Route path="4" component={MpvContainer} />
          </Route>
        </Route>
      </Router>
    );
  }
}

如果您使用的是React Router v3,则需要单独安装history软件包并使用useBasename函数。

import React from "react";
import { Router, Route, browserHistory, IndexRoute } from "react-router";
import { useBasename } from 'history'

class App extends React.Component {
  render() {
    return (
      <Router history={useBasename(() => browserHistory)({ basename: '/app' })}>
        <Route component={App}>
          <Route path="/" component={Home} />
          <Route path="/login" component={LoginContainer} />
          <Route path="apresentacao">
            <IndexRoute component={NameContainer} />
            <Route path="2" component={HsContainer} />
            <Route path="3" component={McContainer} />
            <Route path="4" component={MpvContainer} />
          </Route>
        </Route>
      </Router>
    );
  }
}

暂无
暂无

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

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