Прежде всего, я использую D3js внутри компонента React, поэтому я использую некоторую переменную моего класса для сохранения данных, например: this.graphicalId = 'test';
У меня есть два элемента в моем элементе d3, svgViewport
, который является элементом g, и streams
, которые являются элементами пути. У меня есть .on('mousemove'
дескриптор события для каждого.
В событии streams
я хотел бы сохранить имя текущего потока, используя d3.select(this)
(обратите внимание, что я в функции (), а не в функции стрелки, так что это локально) в глобальной переменной, чтобы используйте его в событии svgViewport
.
Моя проблема в том, что, как будто я нахожусь в функции () this
является локальным и не ссылается на мой экземпляр класса, поэтому я не могу сохранить значение в переменной-члене this.currentStreamName
.
немного кода:
svgViewport.on('mousemove', function (d, i) {
if (mouseIsOverStream) {
let mousex = d3.mouse(this);
mousex = mousex[0];
// here I want this of the class instance context
this.nearestTickPosition, this.currentStreamName = findNearestTickPosition(mousex);
}
});
Есть ли у вас какие-либо советы, чтобы справиться с этим?
Спасибо.