Comment utiliser Réagir Routeur avec de l'Électron?
À l'aide de ce standard comme référence, j'ai créé un Electron app. Il utilise webpack de regrouper les scripts et les exprimer serveur de l'hôte.
Webpack config est pratiquement la même que cette et le serveur cette.
De l'électron script charge:
mainWindow.loadURL('file://' + __dirname + '/app/index.html');
Et index.html charge le script hébergé par le serveur:
<script src="http://localhost:3000/dist/bundle.js"></script>
- Je exécuter electron index.js
pour construire l'application et node server
pour démarrer le serveur à l'aide de webpack faisceaux les scripts.
Il fonctionne très bien, mon Réagir composant d'Application est monté. Mais comment je peux intégrer réagir-routeur dans tout cela?
J'ai implémenté de la même manière que je serait dans un navigateur application. J'obtiens cette erreur:
[react-router] Location "/Users/arjun/Documents/Github/electron-app/app/index.html" did not match any routes
Elle prend chemin d'accès du fichier que l'itinéraire. En passant par la chaudière de la plaque de code n'a pas aidé. Ce qui me manque?
- Exactement la même chose. Avez-vous trouvé une solution, @arjun-u – ou avez-vous simplement aller pour hashHistory à la place?
- J'ai utilisé hashHistory.
Vous devez vous connecter pour publier un commentaire.
Une autre option serait d'utiliser hashHistory à la place. En fait, dans votre référencé repo vous pouvez voir qu'ils sont à l'aide de hashHistory, que diriez-vous d'essayer et de les republier?
Je suis l'aide de Réagir Routeur v4 et ne voulait pas revenir sur le
HashRouter
, donc je l'ai résolu avec quelque chose entre les goûts de:Dû Remplacer
BrowserRouter
avecHashRouter
.Et puis dans mon
index.js
ou l'entrée de fichier de l'Électron application, j'ai eu quelque chose comme ceci:Et puis tout simplement travaillé.
Le raisonnement:
BrowserRouter
est destinée à demander à des environnements tandis queHashRouter
est conçu pour les environnements basés sur des fichiers.Lire la suite ici:
Meilleure option au moment de la cette réponse est d'utiliser le MemoryRouter, a fonctionné pour moi 🙂
L' (en cours) réagir-routeur docs dire:
Un Électron application est en fait un fichier statique serveur.
MemoryRouter peut également fonctionner, aussi longtemps que le routage provient de la Réagir la partie de l'application. Il ne tombe vers le bas lorsque vous souhaitez accéder à une page spécifique du processus de Navigateur, par exemple, vous voulez faire apparaître une nouvelle fenêtre et de passer directement à un "Préférences Générales" page. Dans ce cas, vous pouvez le faire avec HashRouter:
Je ne pense pas qu'il existe un moyen de le faire avec MemoryRouter (à partir de l'explorateur de processus).
D'accord avec Niekert.
Mais je crois que c'est mieux à gérer comme cela avant tout la gestion des routes.