سؤال كيفية حل "TypeError: لا يمكن استدعاء الأسلوب" دفع "خالية"


أنا مبرمج qml جديد ووجدت حاليًا في هذه المشكلة أنه عندما أريد الاتصال بصفحة جديدة عند النقر على زر ، تقول:

TypeError: Cannot call method 'push' of null

لقد جربت كل ما أعرف لحل هذا ولكن لا شيء.

هنا الكود:

import QtQuick 2.0
import Ubuntu.Components 0.1
import "components"

MainView {

    objectName: "mainView"

    applicationName: "com.ubuntu.developer..EcoLover3"

    automaticOrientation: true

    width: units.gu(48)
       height: units.gu(60)
    PageStack {
        id: pagestack
       Component.onCompleted: push(page0)
        Page {
            id: page0
            title: i18n.tr("Bem Vindo à aplicação do EcoLover" )
            visible: false
            Text {
                id: entrada
                text: qsTr("Caro Cliente, <br>aqui poderá contrloar os seus gastos de energia</br>")
            }
        Column {
            anchors.margins: units.gu(3)
                            spacing: units.gu(3)
                            anchors.fill: parent

           Image{
               anchors.horizontalCenter: parent.horizontalCenter
           source: "/home/diogo/ecoLover_teste2/components/Ecolover_com_stroke.png"
           }

           Button {
               anchors.horizontalCenter: parent.horizontalCenter
               text: i18n.tr("Page one")
               onClicked: pageStack.push(page1, {color: UbuntuColors.orange})
           }
           Button {
                             anchors.horizontalCenter: parent.horizontalCenter
                             text: i18n.tr("Entrar no  EcoLover")
                             onClicked: pageStack.push(Qt.resolvedUrl("Pagina_inicial.qml"))
                         }
            }
        }

        Page {
                   title: "Rectangle"
                   id: page1
                   visible: false
                   property alias color: rectangle.color
                   Rectangle {
                       id: rectangle
                       anchors {
                           fill: parent
                           margins: units.gu(5)
                       }
       }
     }}}

2
2017-07-04 14:06


الأصل




الأجوبة:


لقد ارتكبت خطأً بسيطًا في تسمية مكون Pagestack:

PageStack {
    id: pagestack

في وقت لاحق كنت تتصل به pageStack.push. للعمل بشكل صحيح ، تحتاج فقط إلى إعادة تسمية معرف المكون الخاص بك (برأس مال S):

PageStack {
    id: pageStack

2
2017-07-04 14:28