Comment empêcher React/Electron de réécrire les requêtes GET
P粉426780515
P粉426780515 2023-09-08 20:46:58
0
1
562

J'utilise React et Electron pour créer une application native et je souhaite transmettre un chemin de fichier de mon processus Electron principal à l'un de mes composants React pour afficher le HTML dans le fichier. J'ai décidé de le faire en utilisant des URL, j'ai donc utilisé la route suivante :

export default function App() {
  return (
      <Router>
        <Routes>
            <Route path="/3D-Graph/*" element={
              <UserContext.Provider value={"3D-Graph"}>
                <GraphApp />
              </UserContext.Provider>
            } />

            <Route path="/" element={
              <UserContext.Provider value={"2D-Graph"}>
                <GraphApp />
              </UserContext.Provider>
            } />
        </Routes>
      </Router>
  );
}

Ensuite, j'utilise ceci dans le composant GraphApp pour obtenir le HTML :

const htmlFile = new URLSearchParams(useLocation().search).get('graph-path')

Cependant, lorsque j'exécute cette commande, j'obtiens le résultat suivant : 将 GET /index.html/3D-Graph/?graph-path=3D-Graph 重写为 /index.html

Je ne sais pas si cela est fait par Electron lorsque j'utilise la fonction loadURL, ou si cela est fait par React lors de son processus de routage. Comment puis-je l’empêcher de le faire afin de pouvoir acheminer l’application ? Ou est-ce que j'aborde les choses de la mauvaise manière ?

P粉426780515
P粉426780515

répondre à tous(1)
P粉504080992

J'ai envoyé le chemin du fichier depuis main dans le passé comme ceci :

Principal :

win.webContents.send(”file-path-reply”, ”PATH TO YOUR FILE”)

ou :

ipcMain.on("eventFromRenderer", (event) => {
   event.sender.send(”file-path-reply”, ”PATH TO YOUR FILE”)
 }

Rendu :

const MyComponent = () => {
const [htmlPath, setHtmlPath] = useState(””);

useEffect(() => {
 const reply = (evt, message) => {      
 setHtmlPath(message);
}

ipcRenderer.on(”file-path-reply”, reply);

}, []);
// use htmlPath…
}

J'espère que cela vous aidera ! La majuscule est un peu bizarre, je l'ai écrite en utilisant la correction automatique sur mon téléphone :)

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal