{
label: 'Live preview',
type: 'checkbox',
checked: false,
click: (menuItem, browserWindow, event) => {
menuItem.checked = true ? false : true;
browserWindow.webContents.send('live-preview', menuItem.checked);
}
},
当我单击菜单项实时预览(复选框)上的上下文菜单时:始终未选中
当我单击menuItem时如何切换复选框
解决方案:
// 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;
}
}
答案 0 :(得分:1)
因为您没有正确设置选中属性的布尔值。
尝试:
menuItem.checked = !menuItem.checked
代替:
menuItem.checked = true ? false : true;
由于menuItem.checked = true ? false : true;
始终为false
,因此分配menuItem.checked
将始终将true
分配给true
。
如果要使用三元运算符翻转布尔值,则必须这样做
menuItem.checked = menuItem.checked ? false : true;
此外,我认为您实际上需要正确设置checked
属性。
{
label: 'Live preview',
type: 'checkbox',
checked: false,
click: (menuItem, browserWindow, event) => {
menuItem.checked = !menuItem.checked;
browserWindow.webContents.send('live-preview', menuItem.checked);
}
},
由于checked: false
,您的复选框始终处于未选中状态。
尝试以下代码:
{
label: 'Live preview',
type: 'checkbox',
click: (menuItem, browserWindow, event) => {
menuItem.checked = !menuItem.checked; // toggles the menu item
browserWindow.webContents.send('live-preview', menuItem.checked);
}
},