electron - 我无法更改复选框的状态

标签 electron

{
  label: 'Live preview',
  type: 'checkbox',
  checked: false,
  click: (menuItem, browserWindow, event) => {
    menuItem.checked = true ? false : true;
    browserWindow.webContents.send('live-preview', menuItem.checked);        
  }
},

当我单击菜单项上的上下文菜单时实时预览(复选框):始终未选中

当我单击菜单项时如何切换复选框

enter image description here

解决方案:
// initialise isChecked variable before the initialisation of context menu
var isChecked = false;

{
  label: 'Live preview',
  type: 'checkbox',
  checked: isChecked,
  click: (menuItem, browserWindow, event) => {
    browserWindow.webContents.send('live-preview', menuItem.checked);
    isChecked = !isChecked;
  }
}

最佳答案

因为您没有正确设置检查属性的 bool 值。

尝试:

menuItem.checked = !menuItem.checked

代替:
menuItem.checked = true ? false : true;

解释:

分配menuItem.checked = true ? false : true;将始终将false分配给menuItem.checked,因为true始终为... true

如果要使用三元运算符翻转 bool 值,则必须这样做
menuItem.checked = menuItem.checked ? false : true;

编辑

另外,我认为您实际上需要正确设置checked -property。
{
  label: 'Live preview',
  type: 'checkbox',
  checked: false,
  click: (menuItem, browserWindow, event) => {
    menuItem.checked = !menuItem.checked;
    browserWindow.webContents.send('live-preview', menuItem.checked);        
  }
},

由于checked: false,将导致您的Checkbox始终处于未选中状态。

尝试以下代码:
{
  label: 'Live preview',
  type: 'checkbox',
  click: (menuItem, browserWindow, event) => {
    menuItem.checked = !menuItem.checked; // toggles the menu item
    browserWindow.webContents.send('live-preview', menuItem.checked);        
  }
},

关于electron - 我无法更改复选框的状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60029517/

相关文章:

javascript - Electron 中的TypeError : Cannot read property 'webContents' of undefined at ipcMainImpl.

javascript - 在 Electron 中加载时区库时出现问题

javascript - 为无框窗口添加边框 - Electron

javascript - 异步 Node js "For"循环与数据库查询

javascript - Electron 保存为将长服务器 URL 作为标题

css - 你如何在 Electron 中自定义滚动条?

command-line-interface - Electron 自动更新窗口

javascript - Electron ,如何通过加载不同的文件来创建另一个窗口

javascript - Electron 应用程序在应用程序关闭时加载外部 URL

javascript - 为什么 Nodejs usb 模块与 Electron 冲突?