如何基于电子菜单单击更改Redux状态?

安德烈·佩纳(AndréPena)

我正在构建基于React和ReduxElectron应用程序。我从电子反应样板开始,它非常简单,易于理解。

我希望用户在Electron菜单上打开一个文件,因此,我想调用reducer并更改Redux应用程序状态。很简单的概念。

问题是我不知道如何从根组件外部更改Redux状态。Electron菜单在main.js文件中定义根组件变量)一起index.js文件中定义Redux statestore

main.js文件中,我想执行以下操作:

  submenu: [{
    label: '&Open',
    accelerator: 'Ctrl+O',
    click: function() {
        // I want to change my app Redux state here. But I don't know how.
    }
  }

任何的想法?

瓦迪姆·马克贡(Vadim Macagon)

您可以在主进程中获取文件名,然后通过Electron IPC将其发送到渲染器进程,例如:

main.js

// mainWindow = new BrowserWindow();

submenu: [{
  label: '&Open',
  accelerator: 'Ctrl+O',
  click: () => {
    // popup a dialog to let the user select a file
    // ...
    // then send the filename to the renderer process
    mainWindow.webContents.send('open-file', selectedFilename);
  }
}]

index.js

import { ipcRenderer } from 'electron';

ipcRenderer.on('open-file', (event, filename) => {
  store.dispatch({ type: 'OPEN_FILE', filename });
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章