我使用的是electron-react-boilerplate v4.0.0我已经从preload.js中暴露了这个电子api,以便在渲染过程中使用。preload.js
当尝试使用"window.electron. ipcreender . printticket ()">
Hello React Component
我有错误:"窗口。"窗口"类型上不存在电子;typeof globalThis"。
@Daniel,
试试这个:-
编辑索引。-
import { render } from "react-dom";
import App from "./App";
render(<App />, document.getElementById("root"));
变成这样:-
import { render } from "react-dom";
import App from "./App";
declare global {
interface Window {
electron: any;
}
}
render(<App />, document.getElementById("root"));
现在可以使用window了。电子在渲染器的任何地方。这为我解决了这个问题。你也可以把它添加到App.js文件中。
虽然我还没有测试过,你也可以这样做:-
preload.js
const { contextBridge, ipcRenderer } = require('electron');
contextBridge.exposeInMainWorld('electron', {
hworld: "Hello world" // window.electron.hworld is a string ("Hello world")
});
index.tsx
import { render } from "react-dom";
import App from "./App";
declare global {
interface Window {
electron: {
hworld: string // Since you know window.electron.hworld is a string
}
}
}
render(<App />, document.getElementById("root"));