前端YuanShenChuQiao = {}
function YuanShenChuQiao:init()
self._cfg = Util:requireCfg(self.mCfg.clientObjPath)
end
function YuanShenChuQiao:main(npcData)
self.npcData = npcData or {}
self.npcID = self.npcData.npcID or 99999
self:syncD
根据错误信息,问题出现在第28行:`local index = 0`之后的`if data.level then`语句。错误提示`attempt to index local 'data' (a nil value)`说明传入的`data`参数是`nil`。
在你的代码中,`updateUI`函数被调用时传入了`nil`值。检查调用`updateUI`的地方:
1. 在`initUI`函数中调用`self:updateUI(data)`,但这里的`data`参数没有传入
2. 在`JiHuo`函数最后调用`self:updateUI(actor,data)`,但这里可能没有正确处理
修改建议:
```lua
function YuanShenChuQiao:updateUI(actor, data)
-- 首先检查data是否为nil
if data == nil then
SL:print("updateUI: data参数为nil")
return
end
local ui = self.ui
local index = 0
-- 安全地获取level
if data and data.level then
index = data.level
end
SL:print("data类型:", type(data))
SL:print("index值:", index)
-- 其他代码...
end
```
同时在调用`updateUI`的地方确保传入正确的参数:
```lua
function YuanShenChuQiao:initUI(data)
UIManager:winCreate(self)
UIManager.widget_scale(self.parent, math.random(3), 0.15)
-- 确保传入data参数
self:updateUI(nil, data or {})
end
```
在`JiHuo`函数中也要确保传入正确的数据:
```lua
function YuanShenChuQiao:JiHuo(actor, data)
local cfg = self._cfg[1]
local level = data and data.index or 0
-- ...其他代码...
-- 更新UI时传入正确的数据
self:updateUI(actor, {index = level})
end
```
另外,你代码中使用了`UILib:removeFromParent`和`UILib:addOnClickEvent`,这些函数在浮生梦老师的前端课程中应该是`GUI:removeFromParent`和`GUI:addOnClickEvent`,请检查函数名是否正确。