2

次のオブジェクトがあります。

var dataInfo = d3.select("#" + chartRenderDiv)
        .select(".labelLayer")
        .selectAll(".labelNode")
        .data(labelsData, function(d){return d.id;});

その後、それに対応して、それに基づいて SVG 要素を作成します。

var labelContainer = dataInfo.enter()
        .append("g")
        .attr("class", "labelNode")
        .attr("cursor","pointer")
        .call(dragInteractive);

そして最後に、変数を手放しました:

labels.exit().remove();

コードは完全に正常に動作しますが、再描画するとlabel、更新されたデータ ソースから更新を取得し続けるとlabelContainer、null 要素の配列になります。

この null 戻り値の原因は何ですか?また、常に更新を取得し、null の配列を返さないようにするにはどうすればよいですか?

UPDATE : LabelsData は、サイズ 183 のオブジェクトの配列です。配列の 1 つのエントリのサンプルを次に示します。

id: "AF"
labelPos: Array[2]
labelPosition: "top-right"
name: "Afghanistan"
neighbourhood: Object
size: 33397058
x: 1349.696941 
y: 60.524 

頻繁に更新され、その変更に基づいて、実際に SVG 要素を変更する必要があります。

4

0 に答える 0