я не могу изменить статус флажка - PullRequest
0 голосов
/ 02 февраля 2020
{
  label: 'Live preview',
  type: 'checkbox',
  checked: false,
  click: (menuItem, browserWindow, event) => {
    menuItem.checked = true ? false : true;
    browserWindow.webContents.send('live-preview', menuItem.checked);        
  }
},

когда я нажимаю на контекстное меню в пункте меню предварительный просмотр (флажок): всегда выключен

Как установить флажок, когда я нажмите на пункт меню

1

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;
  }
}

1 Ответ

1 голос
/ 02 февраля 2020

Поскольку вы не указали логическое значение проверенного атрибута правильно.

Попробуйте:

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);        
  }
},
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...