{
label: 'Live preview',
type: 'checkbox',
checked: false,
click: (menuItem, browserWindow, event) => {
menuItem.checked = true ? false : true;
browserWindow.webContents.send('live-preview', menuItem.checked);
}
},
当我单击菜单项上的上下文菜单时实时预览(复选框):始终未选中
当我单击菜单项时如何切换复选框
解决方案:
// 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/