На моем графике d3 добавлено, что "rect" не подходит - PullRequest
1 голос
/ 26 февраля 2020

На моем графике d3, при щелчке по кругу / точке, я показываю rect, который идет неправильно. xScale ссылка неверна.

g.selectAll(".rect-elements")
  .data(data)
  .enter()
  .append("rect")
  .attr("class", "rect-elements")
  .attr("id", d => "rect_" + d.startTime)
  .attr("x", d => xScale(d.startTime) - 12.5)
  .attr("y", 0)
  .attr("width", 24)
  .attr("height", height + 5)
  .attr("data", d => d)
  .style("fill", "steelblue")
  .style("opacity", 0);

Эта ссылка неверна, используется шкала по умолчанию.

xScale(d.startTime)

из-за этого кода

if (data.length > 1) svg.call(zoom.transform, transform); //This is initial call on chart 

он не приходит должным образом, он приходит к шкале по умолчанию.

Я пытался восстановить новый масштаб и использовать, но d3.event недоступен.

let newXscale;
        if(d3.event)
            newXscale = d3.event.transform.rescaleX(xScale);
        else
            newXscale = xScale;

newXscale(d.startTime)

Любое руководство, что я отсутствует.

enter image description here

код песочницы - https://codesandbox.io/s/hungry-monad-xw9dw

...