Поскольку вы не указали логическое значение проверенного атрибута правильно.
Попробуйте:
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);
}
},