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