我看了很多关于使用ipcRenderer集成react和electron的教程,但是找不到任何解释为什么我在App.js中得到一个错误“window.require is not a function”。
import React from 'react';
import logo from './logo.svg';
import './App.css';
const { ipcRenderer } = window.require('electron');
function App() {
return (
<div className="App">Rendered</div>
);
}
请帮帮我
1条答案
按热度按时间yhqotfr81#
首先,3年前的教程不是一个可靠的来源,我建议你看看Electron docs。
在本教程中,
webPreferences.nodeIntegration
被设置为true
,出于安全原因,不建议这样做。你不应该在渲染器进程(你的React代码)中直接调用electron
。如果你想使用IPC在你的主进程和渲染进程之间进行通信,你可以使用preload脚本来公开你需要的东西(但不要直接使用IPC函数)。如果我采用教程中的示例,下面是安全的方法:
预加载
渲染器
如果您期望从主进程得到响应,那么您最有可能希望使用
invoke
/handle
,而不是send
/on
和useEffect
。这里有一个例子。