Я использую React-Router 1.0.0-rc3 вместе с Redux-Router 1.0. 0-бета3.
При использовании React-Router вы можете использовать useBasename
с createHistory
, чтобы установить базовый URL-адрес приложения, чтобы вы могли легко написать приложение, которое выполняется внутри подкаталога. Пример:
Вместо этого:
import { createHistory } from 'history';
let base = "/app_name/"
<Router history={browserHistory}>
<Route path={base} component={App}></Route>
</Router>
<Link path={base + "some_path"}>some_path</Link>
Вы можете написать таким образом, используя useBasename
:
import { createHistory, useBasename } from 'history';
const browserHistory = useBasename(createHistory)({
basename: "/app_name"
});
<Router history={browserHistory}>
<Route path="/" component={App}></Route>
</Router>
<Link path="/some_path">some_path</Link>
Однако в Redux-Router вам нужно передать createHistory
вместо history
в редуктор:
const store = compose(
applyMiddleware(m1, m2, m3),
reduxReactRouter({
routes,
createHistory
}),
devTools()
)(createStore)(reducer);
Как мы можем использовать useBasename
в этом случае?