如何为react-router路由器设置基本名称

Leo*_*ves 3 javascript reactjs react-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>
Run Code Online (Sandbox Code Playgroud)

Tho*_*lle 5

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

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>
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

如果您使用的是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>
    );
  }
}
Run Code Online (Sandbox Code Playgroud)