我正在从另一个 QML 页面初始化一个 QML 页面的属性。
我的第一个 QML 页面的代码 -page1.qml
如下:
Page{
id: page1
//Some code
Button{
text: "Click Me"
onClicked: {
var page = nextPage.createObject();
page.cost = netCost; //netCost is an int property of page1 and is calculated in the code
resvNav.push(page); //resNav is the id of the NavigationPane
}
}// Button ends
attachedObjects: [
ComponentDefinition {
id: nextPage
source: "page2.qml"
}
]
}// page ends
我的第二页的代码 -page2.qml
如下:
Page{
id: page2
property int cost
property alias labeltext: label1.text
Container{
Label{
id: label1
}
}// Container ends
onCreationCompleted{
console.debug(cost);
var totalCost = cost + 50;
labeltext = totalCost;
}
}//Page ends
现在,问题是,对于任何cost
传递 frompage1.qml
的page2.qml
值,控制台中显示的值始终为 0,因此totalCost
始终为 50。当我使用代码label1.text: cost
时,它会显示属性的正确值。
在 中使用时属性是否未初始化onCreationCompleted
?如果不是,那么在推送页面后使用和/或修改属性的方法是什么?我尝试调用自定义 javascript 函数,onCreationCompleted
但它产生了相同的结果,即cost
保持为 0。