我在Electorn中遇到react-router
的问题是我不能做window.location = '/'
之类的事情,因为电子应用中的window.location
指向主脚本的文件系统级路径。
我知道react-router
的官方文件说
// history.js
import createBrowserHistory from 'history/lib/createBrowserHistory'
export default createBrowserHistory()
// index.js
import history from './history'
render(<Router history={history}/>, el)
// actions.js
import history from './history'
history.replaceState(null, '/some/path')
但是调用history.replaceState()
在我的应用中什么也没做。
最可疑和最奇怪的部分是虽然我使用createBrowserHistory
作为路由器历史记录window.location
打印哈希路径。
基于历史记录的路由是否存在电子特定问题?如果没有,为什么调用history.replaceState(null, '/')
不会改变路线?
答案 0 :(得分:1)
从react-router 1.0.3开始使用哈希历史记录:
// history.js
import createHashHistory from 'history/lib/createHashHistory';
export default createHashHistory();
渲染:
// index.js
import history from './history'
render(<Router history={ history }/>, el);
路线如下:
// action.js
import history from './history';
history.replaceState(null, '/some/path');
请阅读doc了解详细信息。