Bagaimana untuk menghentikan React/Electron daripada menulis semula permintaan GET
P粉426780515
P粉426780515 2023-09-08 20:46:58
0
1
664

Saya menggunakan React dan Electron untuk mencipta apl asli dan saya ingin menghantar laluan fail daripada proses Electron utama saya kepada salah satu komponen React saya untuk memaparkan HTML dalam fail. Saya memutuskan untuk melakukan ini menggunakan URL, jadi saya menggunakan laluan berikut:

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>
  );
}

Kemudian saya menggunakan ini dalam komponen GraphApp untuk mendapatkan HTML:

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

Walau bagaimanapun, apabila saya menjalankan arahan ini, saya mendapat output berikut: 将 GET /index.html/3D-Graph/?graph-path=3D-Graph 重写为 /index.html

Saya tidak tahu sama ada ini dilakukan oleh Electron apabila saya menggunakan fungsi loadURL, atau jika ia dilakukan oleh React semasa proses penghalaannya. Bagaimanakah cara saya menghentikannya daripada melakukan ini supaya saya boleh menghalakan aplikasi? Atau adakah saya mendekati ini dengan cara yang salah?

P粉426780515
P粉426780515

membalas semua(1)
P粉504080992

Saya telah menghantar laluan fail dari utama pada masa lalu seperti ini:

Utama:

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

atau:

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

Rendering:

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

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

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

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

Semoga ini membantu! Huruf besarnya agak pelik, saya menulisnya menggunakan autocorrect pada telefon saya :)

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan