我有一个在嵌套网址上运行的应用程序,而不是root用户。让我们说false
。
我读了here,在路由器2.x中你可以配置基本名称。
如何在反应路由器3.x中完成?
仅供参考我也在使用example.com/app
包。
答案 0 :(得分:5)
此功能在React Router中不再存在。我遇到了类似的问题,发现了这个问题。
第1步:安装历史记录(3.0.0)
npm install --save history@3.0.0
第2步:在路由器文件(包含<Router>
的文件)中从历史记录中导入{useBasename}:
import { useBasename } from 'history'
第3步:修改您的<Router>
,如下例所示:
<Router history={ useBasename(() => browserHistory)({ basename: '/app' }) }>
答案 1 :(得分:1)
我认为在React Router文档中配置历史记录的部分是您正在寻找的内容:
这是一个与react-router-redux集成的完整示例(不包含一些不必要的信息):
import React from 'react';
import ReactDOM from 'react-dom';
import createBrowserHistory from 'history/lib/createBrowserHistory';
import { useRouterHistory } from 'react-router';
import { syncHistoryWithStore } from 'react-router-redux';
import Root from './containers/Root';
import configureStore from './store/configureStore';
const historyConfig = { basename: '/some-basename' };
const browserHistory = useRouterHistory(createBrowserHistory)(historyConfig);
const store = configureStore({ initialState, browserHistory });
const history = syncHistoryWithStore(browserHistory, store, {
selectLocationState: (state) => state.router,
});
ReactDOM.render(
<Root history={history} store={store} />,
document.getElementById('root')
);