首页 > 解决方案 > ReferenceError:“项目”未定义

问题描述

我想检查一个组件项是否可见,但我不知道该怎么做。

这是我的代码,但错误是“ReferenceError: tagFilterPlaylist is not defined”如何解决这个问题?

Repeater {
    id: tagRepeater
    model: main.playListBrowseModel
    Component {
            id: componentTagFilterPlaylist

            BasicUI.Tag {
                id: tagFilterPlaylist
                tag: "playlist"
                selected: true

                
            }
        }

    Loader {
        id: filterLoader
        sourceComponent:
            if (item_type === "playlist"){
                console.debug("check"+tagFilterPlaylist)
                if (!tagFilterPlaylist) {
                    tagFilterPlaylist.visible = true;
                    return componentTagFilterPlaylist
                }
            }
    }
}

标签: qtreferenceqml

解决方案


您不能在组件中引用 id,因为您首先需要拥有该组件的实例。您应该做的只是在 之外保留一个布尔属性Repeater,以跟踪您是否正在显示您的唯一tagFilterPlaylist

property bool playlistVisible: false
Component {
    id: componentTagFilterPlaylist
    ...
}

Repeater {
    id: tagRepeater
    model: main.playListBrowseModel

    Loader {
        id: filterLoader
        sourceComponent:
            if (item_type === "playlist"){
                if (!playlistVisible) {
                    playlistVisible = true;
                    return componentTagFilterPlaylist
                }
            }
    }
}

推荐阅读