2017-08-29 60 views
2

我被卡住了电子问题。或者反应,我不知道。 我正在尝试为它使用electron.autoUpdater创建一个React.Component。app和autoUpdater在reactjs中不可用,但在nodejs中可用

我使用

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

反应成分,但这些类都不可用。当与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( '电子');该命令起作用,但这些模块仍然不可用

预先感谢您

回答

0

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

的想法是,应用程序,autoUpdater和许多其他组件都可以在electron.remote 我不知道为什么,但关键字“远程”表示你正在使用相同的应用程序,autoUpdater等在主进程中。 有没有其他解释? PS:我会让你知道这个解决方案是否工作。

NOTSOLATEREDIT:

这是我的解决方案,工作流畅。有没有更好的方法来做到这一点?

import electron from 'electron'; 
const app = electron.remote.app; 
const autoUpdater = electron.remote.autoUpdater; 
const dialog = electron.remote.dialog; 
相关问题