路由不适用于使用 ReactJS 和 reach-router 的打包 Electron 应用程序
Routing doesn't work on packaged Electron app using ReactJS and reach-router
我已经成功地使用 electron 完成了 React App 的打包。它运行良好并加载主页,但当我尝试路由时,它根本不起作用。我正在为我的项目使用 reach-router,我想我必须为此调整我的路由配置。
仅供参考,这不是我发出的网络请求,它只是从主页路由到登录页面,不需要 API 调用。但是没有任何反应。
import { Router } from '@reach/router';
const App = () => (
<Provider store={STORE}>
<Main>
<Router>
<Home default path="/" />
<Login path="login" />
</Router>
</Main>
</Provider>
);
export default App;
有关于如何使用 react-router 解决此问题的帮助,但互联网上 reach-router 上没有任何内容。
好的,所以我在 Github 上遇到了这个问题,建议的解决方案按预期工作:
https://github.com/reach/router/issues/25
想法是使用内存历史记录(因为 reach 不支持哈希)。 Reach 为此公开了 createMemorySource、createHistory 和 LocationProvider。
let source = createMemorySource("/starting/url")
let history = createHistory(source)
let App = () => (
<LocationProvider history={history}>
<Router>
{/* ... */}
</Router>
</LocationProvider>
)
Reach-router 文档建议创建内存源是为了开发目的,但它非常适合 Electron 用例。我希望这对将来的人有帮助。
我已经成功地使用 electron 完成了 React App 的打包。它运行良好并加载主页,但当我尝试路由时,它根本不起作用。我正在为我的项目使用 reach-router,我想我必须为此调整我的路由配置。
仅供参考,这不是我发出的网络请求,它只是从主页路由到登录页面,不需要 API 调用。但是没有任何反应。
import { Router } from '@reach/router';
const App = () => (
<Provider store={STORE}>
<Main>
<Router>
<Home default path="/" />
<Login path="login" />
</Router>
</Main>
</Provider>
);
export default App;
有关于如何使用 react-router 解决此问题的帮助,但互联网上 reach-router 上没有任何内容。
好的,所以我在 Github 上遇到了这个问题,建议的解决方案按预期工作: https://github.com/reach/router/issues/25
想法是使用内存历史记录(因为 reach 不支持哈希)。 Reach 为此公开了 createMemorySource、createHistory 和 LocationProvider。
let source = createMemorySource("/starting/url")
let history = createHistory(source)
let App = () => (
<LocationProvider history={history}>
<Router>
{/* ... */}
</Router>
</LocationProvider>
)
Reach-router 文档建议创建内存源是为了开发目的,但它非常适合 Electron 用例。我希望这对将来的人有帮助。