local item_bjk = self:getSafeWidget(widget, "item_bjk")
-- 物品数据
local itemData = {
index = SL:GetMetaValue("ITEM_INDEX_BY_NAME", self.cfg[jj_leve].item),
look = true,
bgVisible = false,
count = 1,
color
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-05-08 14:51:52 |
👁️ 阅读: 6
你需要在创建物品组件前判断是否存在同名组件,如果存在则先删除。以下是修改后的代码:
```lua
local item_bjk = self:getSafeWidget(widget, "item_bjk")
-- 获取已存在的物品组件
local existingItem = GUI:getChildByName(item_bjk, "my_item1")
-- 如果已存在则删除
if existingItem and not GUI:Win_IsNull(existingItem) then
GUI:removeFromParent(existingItem)
end
-- 物品数据
local itemData = {
index = SL:GetMetaValue("ITEM_INDEX_BY_NAME", self.cfg[jj_leve].item),
look = true,
bgVisible = false,
count = 1,
color = 245
}
local pos = getOperModeValue(15, 0)
local item = GUI:ItemShow_Create(item_bjk, "my_item1", pos, pos, itemData)
```
**关键点说明:**
1. `GUI:getChildByName(parent, childName)` 通过名称获取子组件
2. `GUI:Win_IsNull(widget)` 判断组件是否为空或无效
3. `GUI:removeFromParent(widget)` 从父节点移除组件
这样就能确保每次创建前清理掉旧的同名组件,避免重复创建的问题。
← 返回问答库