很抱歉可能是一个愚蠢的问题 - 我对QML很新。
我的StackView的一个页面:
Page
{
id : root
header: ToolBar
{
BackButton
{
anchors.left: parent.left
}
}
}
BackButton代码:
Button
{
text: "<"
font.pixelSize: 20
width: 30
onClicked: parent.root.StackView.view.pop()
}
我也尝试过parent.StackView。没运气。获得:
TypeError: Cannot call method 'pop' of null
有解决方案吗?
答案 0 :(得分:2)
我建议这样的事情。
main.qml:
import QtQuick 2.6
import QtQuick.Controls 2.0
StackView {
id: stackView
initialItem: Page {
header: ToolBar {
BackButton {
anchors.left: parent.left
view: stackView
}
}
}
}
BackButton.qml:
import QtQuick 2.6
import QtQuick.Controls 2.0
Button {
property StackView view
text: "<"
font.pixelSize: 20
width: 30
onClicked: view.pop()
}
这样,您不依赖于组件外部的id
。相反,你传入你希望BackButton操作的实例 - 这在将来重构时不那么脆弱。
答案 1 :(得分:1)