适用于Angular Electron app的Singleton redux商店

问题描述 投票:-1回答:1

所以我有一个Electron应用程序,持有Angular SPA。使用ngrx Redux处理应用程序的状态。

我希望能够创建一个新的BrowserWindow并保持原始窗口中的状态。我已经看过React,这可以使用redux-electron-store完成,但我似乎找不到任何类似的Angular。 Angular有可能吗?

angular redux electron
1个回答
1
投票

您可以使用ipc实现此目的。

原始窗口呈现JS

    import { ipcRenderer } from "electron";

    let personName = 'Leandro'
    let personAge = -1

    ipcRenderer.send("send-data", {name:personName, age:personAge})

主/ index.js

    // When receives data from ipcRenderer/Original renderer 
    // emits that data to channel "here is your data"
    ipcMain.on("send-data", function(event, args){
        ipcMain.emit("here-isyour-data", data) 
    })

接收器渲染器

    let personName = null
    let personAge = null
    ipcRenderer.on("here-isyour-data",function(event, args) {
       personName = args.personName
       personAge = args.personAge
    })

最好使主index.js成为控制器,但如果你想要,你可以使用ipcRenderer.sendTo()让渲染器进程相互通信。

要解决您的问题,您可以这样做

// On creation/indexjs
let newWindow = new BrowserWindow()
 newWindow.emit('hey, im created')

 // On render.js
 let personName = null
 let personAge = null
 newWindow.once('oke, here is your data', function(event, args){
       personName = args.personName
       personAge = args.personAge
})

// On original render.js

    let personName = 'Leandro'
    let personAge = -1
    ipcRenderer.once("hey, im created", function(){
       ipcRenderer.send("oke, here is your data", {name:personName, age:personAge})
    })

要么

将主渲染器作为“//创建/索引js”的中间人。

我希望我帮助过,我从未使用角度,但我认为你能够用电子来实现这一点。

欲了解更多信息,请访问电子:ipc Docs

如果你想要一个很酷的改进窗口处理程序,请访问:GitHub

© www.soinside.com 2019 - 2024. All rights reserved.