Rumah > Soal Jawab > teks badan
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粉5040809922023-09-09 12:55:41
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 :)