如何阻止 React/Electron 重写 GET 请求
P粉426780515
P粉426780515 2023-09-08 20:46:58
0
1
568

我正在使用 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粉426780515
P粉426780515

全部回复(1)
P粉504080992

我过去从 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…
}

希望这有帮助!大小写有点奇怪,我是在手机上使用自动更正功能写的:)

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板