electron - 我无法更改复选框的状态
问题描述
{
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;
}
}
解决方案
因为你没有正确设置checked属性的布尔值。
尝试:
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);
}
},
推荐阅读
- c - 我想从文件输入创建一个 BST
- r - 对数据框中的组执行多个fisher.test
- dynamic-scope - 基于动态范围查找值
- python - 如何在 QSortFilterProxyModel 更新上更新 QLabel
- android - IllegalStateException:在 Jetpack Compose 测试期间未初始化 FocusRequester
- flutter - 任何想法如何删除此错误“空值检查运算符用于空值”
- css - (LESS 语言)无序列表的每个级别的不同文本颜色/大小 | 最小行高 | 最小边距,填充
- memory-leaks - Xamarin.IOS 内存泄漏 - 监控内存消耗?
- c# - 如何使用 JWT 令牌授权用户对 asp net core web api 做出反应。何时使用自动化标头不记名令牌?
- javascript - 如何使用按钮将文本输入保存并显示到本地存储