QtQuick: "StackView: You cannot push/pop recursively"



在Android上运行我的QML应用程序时收到此错误消息。不过,它在qmlscene中工作正常。

代码如下所示:

main.qml

ApplicationWindow {
    property Component loaderPage: LoaderPage {
        onGotoPage: changePage(page)
    }
    property Component loginPage: LoginPage {
        onGotoPage: changePage(page)
    }
    function changePage(page) {
        switch (page) {
            case "login":
                stackView.push({item: loginPage});
                break;
            default:
                print("panic!")
        }
    }
    StackView {
        id: stackView
        initialItem: loaderPage
    }
}

Page.qml

Item {
    signal gotoPage (string page)
}

LoaderPage.qml

Page {
    id: loaderPage
    // Triggered by some event:
    function() {
        loaderPage.gotoPage("login");
    }
}

谁能解释为什么它抱怨递归调用?

我正在与QtQuick 2.3QtQuick.Controls 1.2一起工作.

此错误仍然存在,QtQuick.Controls 2.2更低,移动到 2.5 和更高应该可以解决它。

最新更新