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

Мне удалось завершить успешную упаковку приложения 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;

Есть справка о том, как решить эту проблему с реактивным маршрутизатором, но в Интернете нет ничего о достижимом маршрутизаторе.


person x86-64    schedule 02.01.2019    source источник


Ответы (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. Надеюсь, это кому-то поможет в будущем.

person x86-64    schedule 02.01.2019