2017-11-30 14 views
1

私はルートにベース名を割り当てたいのですが、これをBrowserRouterで行うことができます。React Router v4 baseNameとカスタム履歴

私はプログラマチックにユーザーを移動できるようにカスタムヒストリを指定したいと思います。私はルータでそれを行うことができます。

ただし、両方を行うことはできません。これをサポートするためにルーターの1つを拡張することは可能ですか?

<BrowserRouter basename="/your/app"> 
    <App/> 
</BrowserRouter> 

か、直接historyを設定するには: -

import React from 'react'; 
import { Router, Switch, Route, Redirect } from 'react-router-dom'; 

import createHistory from './history'; 

import Navigation from './components/navigation/Navigation'; 

import PrivateRoute from './components/private-route/PrivateRoute'; 

import Home from './containers/home/Home'; 
import PageTwo from './components/pageTwo/PageTwo'; 
import Callback from './components/callback/Callback'; 
import Login from './components/login/Login'; 

export default() => (
    <Router history={createHistory}> 
    <div> 
     <Navigation /> 
     <Switch> 
     <Route path="/callback" component={Callback} /> 
     <Route path="/login" component={Login} /> 
     <PrivateRoute path="/" exact component={Home} /> 
     <PrivateRoute path="/page-two" component={PageTwo} /> 
     <Redirect to="/" /> 
     </Switch> 
    </div> 
    </Router> 
); 

しかし、私のような何かを達成してみたい -

<Router history={createHistory} basename="foo"> 

答えて

3

You can

私の現在の設定は、これがありますオブジェクト:

import { Router } from 'react-router'; 
import createBrowserHistory from 'history/createBrowserHistory'; 

const history = createBrowserHistory({ basename: '/your/app' }); 

<Router history={history}> 
    <App /> 
</Router> 
関連する問題