我有以下环境:
"react": "^15.4.2",
"react-redux": "^5.0.3",
"react-router": "^3.0.2",
"react-router-redux": "^4.0.8",
迁移到react-router 4 不是此项目中的选项。
通过以下配置,我的应用程序正常运行(这意味着:我的dispatch(push('/foo'))
正在运行,执行浏览器URL更改和还原商店@@reouter/LOCATION_CHANGE
):
import { Provider } from 'react-redux';
import { browserHistory } from 'react-router';
import { Router, useRouterHistory } from 'react-router';
const history = syncHistoryWithStore(browserHistory, store);
ReactDOM.render(
<Provider store={store}>
<Router history={history} routes={routes} />
</Provider>,
rootEl
);
当我需要在路由网址中添加basename
时,问题就开始了。
我发现了一些不同的方法。按照我做的一个测试:
import { Provider } from 'react-redux';
import { Router, useRouterHistory } from 'react-router';
//import { createHistory } from 'history';
import createBrowserHistory from 'history/lib/createBrowserHistory';
//const browserHistory = useRouterHistory(createHistory)({
// basename: config.historyBasename,
//});
const browserHistory = useRouterHistory(createBrowserHistory)({
basename: config.historyBasename,
});
const history = syncHistoryWithStore(browserHistory, store);
ReactDOM.render(
<Provider store={store}>
<Router history={history} routes={routes} />
</Provider>,
rootEl
);
无论我尝试了哪种配置,我push
react-router-redux
的发送现已停止工作:我仍然看到浏览器网址更改,但我的商店没有变化。
是否可以让react-router-redux
使用上面列出的版本的basename
?
答案 0 :(得分:0)
最后我们发现react-router配置没有问题。
问题出在if
配置中。 <{1}}参数前面缺少斜线导致错误。