Маршрутизация не работает в упакованном приложении Electron с использованием ReactJS и reach-router

Мне удалось завершить успешную упаковку приложения React с использованием электроники. Он работает нормально и загружает домашнюю страницу, но когда я пытаюсь выполнить маршрутизацию, он просто не работает. Я использую для моего проекта рихтер-роутер, и я предполагаю, что для этого мне нужно настроить конфигурацию маршрутизации.

К вашему сведению, это не сетевой запрос, который я делаю, это просто маршрутизация на страницу входа с домашней страницы, которая не требует вызова 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;

Существует справка о том, как решить эту проблему с реакцией-маршрутизатором, но на интернет -роутере ничего нет.

1 ответ

Итак, я столкнулся с этой проблемой на 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. Я надеюсь, что это поможет кому-то в будущем.

Другие вопросы по тегам