FuLiDaTing2 = Class("FuLiDaTing2", BaseLogic)
function FuLiDaTing2:init()
self.cName = "福利大厅_新"
self._cfg = Util:requireCfg(self.mCfg.clientObjPath)
self.curTab = 1 -- 当前页码
self.pageSize = 10 -- 每页显示数量
end
function FuLiDaTing2:mai
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-06-02 17:44:39 |
👁️ 阅读: 3
你的代码在第95行出现了`curPage`为nil的错误。根据浮生梦老师前端课程内容分析,问题出在`YuanBaoPanel`函数中:
```lua
function FuLiDaTing2:YuanBaoPanel(data)
local ui = self.ui
local cfg = self._cfg or {}
local startIndex = (self.curPage - 1) * self.pageSize + 1 -- 第95行:这里self.curPage是nil
local endIndex = math.min(startIndex + self.pageSize - 1, 30)
```
问题原因:
1. 在`initUI`函数中,你为`Button_1`、`Button_2`、`Button_3`设置了点击事件,点击时会给`self.curPage`赋值为1
2. 但在`YuanBaoPanel`函数被调用时,`self.curPage`可能还没有初始化
解决方案:
```lua
function FuLiDaTing2:YuanBaoPanel(data)
local ui = self.ui
local cfg = self._cfg or {}
-- 添加nil值检查
self.curPage = self.curPage or 1 -- 如果curPage是nil,则初始化为1
local startIndex = (self.curPage - 1) * self.pageSize + 1
local endIndex = math.min(startIndex + self.pageSize - 1, 30)
-- 清空ListView内容
GUI:ListView_removeAllItems(ui.ListView_1)
for i = startIndex, endIndex do
-- 创建背景图
local Image_5 = GUI:Image_Create(ui.ListView_1, "Image_5"..i, 10, 288, "res/custom/02bg2/28.png")
GUI:setContentSize(Image_5, 516, 52)
-- 获取物品名称
local name = cfg[1] and cfg[1].equip[i] or ""
local itemIndex = SL:GetMetaValue("ITEM_NAME", name) or ""
-- 获取奖励文本
local jiangli = cfg[i] and cfg[i].givetext or ""
-- 创建文本
local nameText = GUI:Text_Create(Image_5, "name", 0, 14, 16, "#ffffff", itemIndex)
local jiangliText = GUI:Text_Create(Image_5, "jiangli", 206, 14, 16, "#ffffff", jiangli)
-- 创建领取按钮
local Image_lingq = GUI:Image_Create(Image_5, "Image_lingq", 397, 10, "res/custom/04mainui/04.png")
-- 将项目添加到ListView
GUI:ListView_pushBackCustomItem(ui.ListView_1, Image_5)
end
self:updatePageButtons()
end
```
另外,建议在`init`函数中给`curPage`一个默认值:
```lua
function FuLiDaTing2:init()
self.cName = "福利大厅_新"
self._cfg = Util:requireCfg(self.mCfg.clientObjPath)
self.curTab = 1 -- 当前标签页
self.curPage = 1 -- 当前页码
self.pageSize = 10 -- 每页显示数量
end
```
这样修改后,`curPage`就不会出现nil值了。记得每次创建新的项目时都要清空ListView,否则会重复添加。
← 返回问答库