web-dev-qa-db-fra.com

comment résoudre "TypeError: impossible d'appeler la méthode 'Push' of null"

Je suis un nouveau programmeur qml et je me suis retrouvé dans ce problème que lorsque je veux appeler une nouvelle page lorsque je clique sur un bouton, elle indique:

TypeError: Cannot call method 'Push' of null

J'ai essayé tout ce que je sais pour résoudre ce problème mais toujours rien.

Voici mon code:

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
Diogo Figueira

Vous avez commis une petite erreur en nommant votre composant Pagestack:

PageStack {
    id: pagestack

Plus tard, vous l'appelez avec pageStack.Push. Pour fonctionner correctement, il vous suffit de renommer votre id de composant (avec une majuscule S):

PageStack {
    id: pageStack
2
Sylvain Pineau