2017-10-24 13 views
0

私はMapPolylineのリストを持っており、動的に追加されたオブジェクトをこのリストに保存しようとしています。よく動作しますが、リスト内のオブジェクトを取得しようとすると動作しません。それは私のコードここリスト内の要素のQMLアクセスプロパティ

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) 

がされている。ここTypeError: Cannot read property of undefinedを言うlineStringComponent.qml

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()) 
} 

コンソール出力は次のようになります。それは新しいオブジェクトを作成しようとすると、それは遅延を持っているようだ

Added: undefined 
TypeError: Cannot read property 'line' of undefined 

。どうすればこの遅れを克服できますか?私はあなたのコードを読めばあなたはline[1]linesの2番目の要素を取得しようとするよりも、

答えて

1

正しくあなただけlinesに要素を追加し、。これは明らかにundefinedです。

linesの最初の要素には、line[0]を入力してください。
JS配列のインデックスは、0(ほとんどの言語のように)で始まります。

あなたはあなたがそのプロパティのいずれかを変更することができませんでしたよりも(sprite.addCoordinate(...)

+0

すごい、オブジェクトの作成と遅延が存在することになる場合は、おかげで非常にそれは、私は非常に感謝を気づかなかった私の明白な間違いでしたたくさん –

関連する問題