因此,我有一个拥有Angular SPA的Electron应用程序。应用程序的状态使用ngrx Redux处理。
我希望能够创建一个新的BrowserWindow
并保留原始窗口中的状态。我已经看到React可以使用redux-electron-store
来完成,但是我似乎找不到与Angular类似的东西。 Angular有可能吗?
答案 0 :(得分:1)
您可以使用ipc来实现。
原始窗口渲染JS
import { ipcRenderer } from "electron";
let personName = 'Leandro'
let personAge = -1
ipcRenderer.send("send-data", {name:personName, age:personAge})
Main / 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})
})
OR
在“ // On creation / indexjs”上将mainRenderer作为中间人。
我希望我有所帮助,我从未使用过角钢,但我认为您可以使用电子来实现这一目标。
有关更多信息,请访问电子:ipc Docs
如果您想要一个不错的,改进的窗口处理程序,请访问:GitHub
答案 1 :(得分:0)
您可以使用此库elctron-ngrx