使用ReactJS和到达路由器在打包的Electron应用程序上路由不起作用

时间:2019-01-02 17:59:48

标签: reactjs electron reach-router

我已经成功地使用电子完成了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解决此问题的帮助,但是Internet上的 reach-router 上没有任何内容。

1 个答案:

答案 0 :(得分:0)

好的,所以我在Github上遇到了这个问题,建议的解决方案按预期工作: https://github.com/reach/router/issues/25

这个想法是使用内存历史记录(因为到达不支持哈希)。为此,Reach公开了createMemorySource,createHistory和LocationProvider。

let source = createMemorySource("/starting/url")
let history = createHistory(source)

let App = () => (
  <LocationProvider history={history}>
    <Router>
      {/* ... */}
    </Router>
  </LocationProvider>
)

Reach-router文档建议创建内存源是出于开发目的,但它非常适合Electron用例。我希望这对以后的人有所帮助。