繁体   English   中英

app和autoUpdater在reactjs中不可用,但在nodejs中可用

[英]app and autoUpdater not available in reactjs, but available in nodejs

我陷入了电子问题。 还是做出反应,我不知道。 我正在尝试创建一个React.Component来与它一起使用electron.autoUpdater。

我正在使用

import {app, autoUpdater, dialog} from 'electron';

在react组件中,但是这些类都不可用。 与require('electron')一起使用时,它们在nodejs中可用(正常,可以),但在reactjs中不可用。 但是其余组件都在那里!

有什么我应该包括或需要知道的吗? 在nodejs中,可用的模块为:

{ clipboard: [Getter],
  crashReporter: [Getter],
  nativeImage: [Getter],
  shell: [Getter],
  app: [Getter],
  autoUpdater: [Getter],
  BrowserView: [Getter],
  BrowserWindow: [Getter],
  contentTracing: [Getter],
  dialog: [Getter],
  globalShortcut: [Getter],
  ipcMain: [Getter],
  Menu: [Getter],
  MenuItem: [Getter],
  net: [Getter],
  Notification: [Getter],
  powerMonitor: [Getter],
  powerSaveBlocker: [Getter],
  protocol: [Getter],
  screen: [Getter],
  session: [Getter],
  systemPreferences: [Getter],
  TouchBar: [Getter],
  Tray: [Getter],
  webContents: [Getter] }

在反应中,可用的组件是:

clipboard, crashReporter, desktopCapturer, 
ipcRenderer, nativeImage, remote, screen, shell, webFrame.

我尝试使用window.require('electron'); 该命令有效,但是这些模块仍然不可用

先感谢您

我想我找到了问题。 这个答案帮助了我: https : //github.com/electron/electron/issues/9920#issuecomment-318986025

这个想法是app,autoUpdater和许多其他组件可以在电子上获得。我不知道为什么,但是关键字“ remote”表示您正在使用相同的app,autoUpdater等,就像在主进程中一样。 还有其他解释吗?

PS:我会让您知道此解决方案是否有效。

NOTSOLATEREDIT:

这是我的解决方案,并且工作顺利。 有什么更好的方法吗?

import electron from 'electron';
const app = electron.remote.app;
const autoUpdater = electron.remote.autoUpdater;
const dialog = electron.remote.dialog;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM