angular - "export 'mouse' (importerat som 'd3') hittades inte i 'd3'"


Jag försöker använda en d3.mouse()-funktion i Angular, men den ger det felet.

Jag försökte också använda d3.pointer, men det säger att den funktionen inte ens finns.

Jag har installerat d3 i mitt projekt med npm:

npm install d3 && npm install @types/d3 --save-dev

Tack på förhand.

Typescript-kod:

 // Draw the X-axis on the DOM
    this.svg.append("g")
    .attr("transform", "translate(0," + this.height + ")")
    .call(d3.axisBottom(x))
    .selectAll("text")
    .attr("transform", "translate(-10,0)rotate(-45)")
    .style("text-anchor", "end")
    .on('mousemove', function(d){

        // recover coordinate we need
        var mouse = d3.mouse(this);

        var x0 = x.invert(mouse[0]); // invert transforma a cordenada no valor correspondente à ela no eixo X
        var y0 = y.invert(mouse[1]);

        // move o cursor pontilhado ao longo do svg conforme movimento do mouse
        d3.select("[name=cursor]")
        .attr("d", function() {
            var d = "M" + mouse[0] + "," + svgHeight;
            d += " " + mouse[0] + "," + 0;
            return d;
        });
    });

Svar #1

Du har installerat d3 version 6. Från versionsinformationen:

Ta bort d3.mouse, d3.touch, d3.touches, d3.clientPoint; lägg till d3.pointer och d3.pointers.

Antingen nedgradera till d3 version 5, eller använd d3.pointer istället.

Relaterade artiklar