【发布时间】:2015-09-25 07:12:44
【问题描述】:
我将 Highcharts.js 与 React.js 结合使用。当用户单击 Highcharts 中的一个点时,我想重新渲染视图。为此,我需要在点击处理程序中访问 props 变量。通常,我只会使用this.props 来更新道具,但这在事件处理程序中不起作用。因此,如何在事件处理程序中将当前组件作为变量访问,以便访问它的 props?有没有更好的方法来做我想做的事情?
我的 HighCharts 的 config 变量看起来像这样。澄清一下,这段代码来自同一组件的render 函数。
var config = {
...
plotOptions: {
series: {
cursor: 'pointer',
point: {
events: {
click: function (event) {
//the `this` variable does not have props or state here
//`this` refers to the point object on the graph here
}
}
}
}
},
};
感谢您的帮助。
【问题讨论】:
-
从点击事件处理程序内部触发
rerender事件不会更有意义吗?events: { click: myRerenderFunction } -
您可以调用在事件范围之上定义的函数,为您处理重新渲染。如果您将它定义在与
config变量相同的级别,它应该充当闭包并且可以在事件内部访问。我敢打赌,这不是唯一必须调用重新渲染事件的地方。 -
这是个好主意,但是我如何将点对象本身(
e对象,如果你愿意的话)传递给myRerenderFunction,以便我可以在自定义函数中访问它?跨度> -
完全一样的方式
function myRerenderFunction(e) { /* do something */ }等一下,让它成为说明的答案。
标签: javascript highcharts reactjs