无法在 QML 列表中创建对象



无法在列表中创建对象。

我需要将最近的请求显示在";最近的";列表提交后,我将请求存储在listOfRecents数组中。

问题是,我无法通过从该数组中获取数据来创建列表对象。以下是代码和错误。

这是带有列表的代码:

Page {
id: serv
title: qsTr("Recent")
function addRecent()
{
inRecentList.clear()
for(var i = 0; i < listOfRecents.length; ++i)
{
var temp = listOfRecents[i];
inRecentList.append({inningData: listOfRecents[i],
inningShow: listOfRecents[i]})
temp = inRecentList[i].inningData
temp = ""
}
}
Component.onCompleted: {
addRecent()
}
ListView {
id: inRecent
x: 5
y: 5
width: parent.width - 10
height: parent.height - 50
spacing: 2

delegate: RecentItem {
isData: inningData
isShow: inningShow
}
model: ListModel {
id: inRecentList
}
}
}

这是RecentItem代码:

Item {
id: inning
property string isShow: ""
property string isData: ""
height: 32
width: inRecent.width
Button
{
height: parent.height
width: parent.width
Row {
anchors.fill: parent
spacing: 10
Image {
id: img
source: "Res/images/ui_elements/query.png"
}
Text {
text: isShow
font{
bold: true
italic: true
pixelSize: 24
}
}
}
onClicked: {
stackView.pop()
stackView.pop()
sTextToRecent(isData)
}
}
}

它在控制台中给出以下错误:

qrc:/Recent.qml:19: TypeError: Cannot read property 'inningData' of undefined
qrc:/Recent.qml:41: ReferenceError: inningShow is not defined
qrc:/Recent.qml:40: ReferenceError: inningData is not defined

我相信您唯一缺少的是您试图错误地读取模型。取而代之的是:

temp = inRecentList[i].inningData

这样做:

temp = inRecentList.get(i).inningData

最新更新