GUI:CheckBox_addOnEvent(check_Box, function()
local isSelected = GUI:CheckBox_isSelected(check_Box)
SL:print(isSelected)
-- 根据这个状态来执行后续逻辑
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-05-07 01:00:19 |
👁️ 阅读: 4
我看到你的代码了,问题出在`checkBox_state`这个变量上。在代码中你定义的是`checkBox_state`,但在打印时也使用了`checkBox_state`,实际上应该使用`npc.selectedItems[n].checkBox_state`。
另外,当复选框未选中时,你没有发送网络消息,这可能是导致后端接收到的数据为nil的原因。
修改后的代码:
```lua
GUI:CheckBox_addOnEvent(check_Box, function()
local isSelected = GUI:CheckBox_isSelected(check_Box)
SL:print(isSelected)
-- 根据这个状态来执行后续逻辑
if isSelected then
npc.selectedItems[n] = {
mainTitle = mainTitle,
subName = subName,
equipName = n,
checkBox_state = 1 -- 选中
}
SL:print("==================================")
SL:print("主分类:"..mainTitle)
SL:print("二级分类:"..subName)
SL:print("装备名:"..n)
SL:print("选中状态:"..tostring(isSelected))
SL:print("复选框状态:"..npc.selectedItems[n].checkBox_state) -- 修改这里
SL:print("==================================")
SL:dump(npc.selectedItems[n])
local checkBoxJson = SL:JsonEncode(npc.selectedItems[n], true)
SL:SendLuaNetMsg(2021, 21, 0, 0, checkBoxJson)
else
npc.selectedItems[n] = {
mainTitle = mainTitle,
subName = subName,
equipName = n,
checkBox_state = 0 -- 未选中
}
SL:print("==================================")
SL:print("主分类:"..mainTitle)
SL:print("二级分类:"..subName)
SL:print("装备名:"..n)
SL:print("选中状态:"..tostring(isSelected))
SL:print("复选框状态:"..npc.selectedItems[n].checkBox_state) -- 修改这里
SL:print("==================================")
-- 未选中时也要发送消息,否则后端可能收不到更新
local checkBoxJson = SL:JsonEncode(npc.selectedItems[n], true)
SL:SendLuaNetMsg(2021, 21, 0, 0, checkBoxJson)
end
end)
```
主要修改点:
1. 将打印的`checkBox_state`改为`npc.selectedItems[n].checkBox_state`
2. 在未选中情况下也发送网络消息,确保后端能收到状态更新
这样修改后,后端应该就能正确接收到复选框的状态了。如果还有问题,可以在发送消息前先打印一下`checkBoxJson`看看是否为nil。
← 返回问答库