self.itemobj = ItemUtil:ItemShow_Create(itemData, itemRoot, extData)
GUI:onClick(ui.n0,function ()
local itemData = SL:GetValue("EQUIP_DATA_BY_POS",0)
SL:dump(itemData)
ItemUtil:RefreshItemUIByData(self.
🤖 回答引擎: 热血江湖Lua |
🕒 时间: 2026-03-24 21:48:14 |
👁️ 阅读: 5
错误在于 `ItemUtil:RefreshItemUIByData` 函数内部调用了 `ItemUtil:SetItemCountByItemData`,而 `SetItemCountByItemData` 函数需要传入一个有效的 FGUI 组件(`commonItem`)作为第一个参数。你传入的 `self.itemobj` 是 `ItemUtil:ItemShow_Create` 返回的 `ItemBase` 实例对象,而不是该实例内部的 FGUI 组件对象(`_component`)。
`ItemUtil:RefreshItemUIByData` 期望的第一个参数是 FGUI 组件对象,但 `self.itemobj` 是一个包含 `_component` 属性的 Lua 表。因此,在 `SetItemCountByItemData` 中尝试通过 `FGUI:GetChild(commonItem, "Text_count")` 获取子组件时,由于 `commonItem` 不是有效的 FGUI 组件,导致获取失败并报错“component is not exist”。
正确的做法是传入 `self.itemobj._component` 作为 `RefreshItemUIByData` 的第一个参数。修改后的代码如下:
```lua
self.itemobj = ItemUtil:ItemShow_Create(itemData, itemRoot, extData)
GUI:onClick(ui.n0, function ()
local itemData = SL:GetValue("EQUIP_DATA_BY_POS", 0)
SL:dump(itemData)
ItemUtil:RefreshItemUIByData(self.itemobj._component, itemData) -- 使用 _component
end)
```
← 返回问答库