В библиотеке react-highcharts
конфиг позволяет реализовывать ивенты по клику. Происходит это так:
plotOptions: {
series: {
stacking: 'normal',
cursor: 'pointer',
allowPointSelect: true,
point: {
events: {
click: function () {
this.props.chartMeasureClick(this.series.options.id);
}
}
}
}
},
И ействительно при клике в данном случае я получаю нужный this.series.options.id
, однако метод this.props.chartMeasureClick
является undefined
. Почитав гуггл, решение нашлось переделать function (){}
в ()=>{}
и действительно, ошибка исчезла, НО теперь this.series.options.id = undefined
, потому что this ссылается на контекст уровнем выше(на саму компоненту). Как мне достучаться до нужного контекста в данном случае?
Вот тут как раз ваш случай. Попробуйте один из предложенных вариантов: https://github.com/kirjs/react-highcharts/issues/348
Либо попробуйте записать в plotOptions
ссылку на this компонента и использовать обычную (не стрелочную функцию). Как-то так:
plotOptions: {
that: this, // <--- here
series: {
...
point: {
events: {
click: getClickHandler(this)
}
}
}
}
UPDATE
Ещё идея с замыканием:
function getClickHandler(context) {
var that = context;
return function () {
that.props.chartMeasureClick(this.series.options.id);
}
}
Виртуальный выделенный сервер (VDS) становится отличным выбором
Есть ли в реакт аналогaddEventListener()? Задача следующая: есть форма, в форме - инпуты
есть карусель на Slick появилась идея при просмотре последнего слайда сделать переход на определённую страницу попробовал такой вариант