{
label: 'Live preview',
type: 'checkbox',
checked: false,
click: (menuItem, browserWindow, event) => {
menuItem.checked = true ? false : true;
browserWindow.webContents.send('live-preview', menuItem.checked);
}
},单击menuItem 上的上下文菜单时,实时预览(复选框):始终未选中
如何在单击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;
}
}发布于 2020-02-02 19:28:39
因为您没有正确设置选中属性的布尔值。
尝试:
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-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。
在下面的代码中试用:
{
label: 'Live preview',
type: 'checkbox',
click: (menuItem, browserWindow, event) => {
menuItem.checked = !menuItem.checked; // toggles the menu item
browserWindow.webContents.send('live-preview', menuItem.checked);
}
},https://stackoverflow.com/questions/60029517
复制相似问题