Мне было интересно, смогу ли я объединить BrowserHistory и MemoryHistory для достижения чего-то вроде следующего:
Страница A (/ pageA должен принять этот URL) => и с этого момента использовать memoryHistory, чтобы практически не манипулировать URL
Страница B (/ pageB должен принять этот URL) => и с этого момента использовать memoryHistory, чтобы практически не манипулировать URL
моим кодом:
const history = createMemoryHistory({
initialEntries: ['/PageA', '/PageB', '/PageBResult', '/PageAResult'],
initialIndex: 1
});
const store = configureStore(history);
ReactDOM.render(
<Provider store={store}>
<ConnectedRouter history={history} >
<App />
</ConnectedRouter>
</Provider>,
document.getElementById('root') as HTMLElement
);
ОТВЕТ В конце концов, я сам все понял, для тех, кто интересуется, как этого добиться, пожалуйста, сделайте следующее
в вашем webpack.config
devServer: {
historyApiFallback: true //add this line
}
в вашем index.html
const resolveInitialIndex = () =>{
if(window.location.pathname.indexOf('PageB') > - 1)
return 1;
return 0;
}
const history = createMemoryHistory({
initialEntries: ['/PageA', '/PageB', '/PageBResult', '/PageAResult'],
initialIndex: resolveInitialIndex()
});
const store = configureStore(history);
ReactDOM.render(
<Provider store={store}>
<ConnectedRouter history={history} >
<App />
</ConnectedRouter>
</Provider>,
document.getElementById('root') as HTMLElement
);