搜尋

首頁  >  問答  >  主體

如何阻止 React/Electron 重寫 GET 請求

我正在使用 React 和 Electron 來創建一個本機應用程序,我想將一個文件路徑從我的主 Electron 進程傳遞到我的 React 元件之一,以在文件中呈現 HTML。我決定使用 URL 來完成此操作,因此我使用以下路由:

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

然後我在 GraphApp 元件中使用它來取得 HTML:

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

但是,當我執行此命令時,我得到以下輸出:將GET /index.html/3D-Graph/?graph-path=3D-Graph 重寫為/index.html

我不知道當我使用 loadURL 函數時,這是否是由 Electron 完成的,或者是否是 React 在其路由過程中完成的。我如何阻止它這樣做,以便我可以路由應用程式?還是我以錯誤的方式處理這個問題?

P粉426780515P粉426780515450 天前575

全部回覆(1)我來回復

  • P粉504080992

    P粉5040809922023-09-09 12:55:41

    我過去從 main 發送過檔案路徑,如下所示:

    主要:

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

    或:

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

    渲染:

    const MyComponent = () => {
    const [htmlPath, setHtmlPath] = useState(””);
    
    useEffect(() => {
     const reply = (evt, message) => {      
     setHtmlPath(message);
    }
    
    ipcRenderer.on(”file-path-reply”, reply);
    
    }, []);
    // use htmlPath…
    }

    希望有幫助!大小寫有點奇怪,我是在手機上使用自動更正功能寫的:)

    回覆
    0
  • 取消回覆