Javascript 无法将QQmlListReference分配给QString

Javascript 无法将QQmlListReference分配给QString,javascript,qml,qt-creator,Javascript,Qml,Qt Creator,因此,我对列表模型和代理有一个有趣的问题 ListView{ .... delegate: Component { Text{ text: data } } } ... ListModel { id: captureModel } ... function updateList() { ... for (var i = 0; i < list.rows.length; ++i) {

因此,我对列表模型和代理有一个有趣的问题

ListView{
....
    delegate: Component {
        Text{
            text: data
        }
    }
}
...

ListModel {
    id: captureModel
}

...

function updateList() {
    ...
    for (var i = 0; i < list.rows.length; ++i) {
        captureModel.append({"data": list.rows.item(i).data});
    }
}
当我试图将新的元素附加到列表模型时,我遇到了一个错误:无法将qqmllistreeference分配给QString。我最终发现问题在于我的列表元素名为data。我只是给它起了个别的名字,效果很好。我认为问题在于数据是一个保留字,但我在Javascript或QML列表中都找不到它。虽然我找不到正式的qml保留字列表。你们知道更完整的清单吗?我希望避免再次发现像这样的保留词,或者如果这个问题实际上是其他问题,我希望听到答案

以下是我正在查看的列表:

Javascript

qml


提前谢谢

您是对的,您的问题是因为您的列表元素角色被称为数据

潜在的问题是,当您执行text:data时,您正在访问文本项的名称。您的模型数据将被特性遮挡

为了安全起见,请在访问角色之前加上model前缀,以避免命名与代理属性冲突。在您的情况下,它将是text:model.data

数据不是保留关键字,它只是代理的一个属性的名称