首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >列表中元素的QML访问属性

列表中元素的QML访问属性
EN

Stack Overflow用户
提问于 2017-10-24 19:51:03
回答 1查看 596关注 0票数 0

我有一个MapPolyline列表,我尝试将动态添加的对象保存到这个列表中。好的,它可以工作,但是当我试图将对象放到列表中时,它就不起作用了。上面写着TypeError: Cannot read property of undefined这是我的代码

代码语言:javascript
复制
property list<MapPolyline> lines

 var component;
 var sprite;
 component = Qt.createComponent("lineStringComponent.qml");
 sprite = component.createObject(window,{"id": "button1"});
 sprite.addCoordinate(QtPositioning.coordinate(currentgcppoint.lat, currentgcppoint.lon));
 sprite.addCoordinate(gcppoint);
 map.addMapItem(sprite)
 lines.push(sprite)
 gcps.push(currentgcppoint)
 console.log("Added:", lines[1])
 console.log("width:", lines[1].line.width)

这是lineStringComponent.qml

代码语言:javascript
复制
import QtQuick 2.2
import QtLocation 5.6
import QtPositioning 5.6
MapPolyline {
    id:polyline
    line.width: 3
    line.color: Qt.rgba(Math.random(),Math.random(),Math.random())
}

控制台的输出是:

代码语言:javascript
复制
Added: undefined
TypeError: Cannot read property 'line' of undefined

当它试图创建一个新的对象时,它似乎有一个延迟。我们怎样才能克服这种拖延呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-24 19:54:49

如果我正确地阅读了您的代码,您只会将1元素添加到lines中,而不是尝试用line[1]检索lines的第二个元素。这显然是undefined

尝试使用lines访问line[0]的第一个元素。

JS数组的索引以0开始(与大多数语言一样)。

如果对象创建出现延迟,则不能更改它的任何属性(sprite.addCoordinate(...))

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46918930

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档