我有下面的函数:
.on("mouseover", function(d, i) {
d3.select(this)
.attr("fill", "red");
})
然而,我想试着把它写成一个箭头函数,所以我发现了这个教程,并得到了这个:
.on("mouseover", (d, i, nodes) => {
d3.select(nodes[i])
.attr("fill", "red");
})
然而,每当我尝试运行它时,我总是会收到一个错误,上面写着TypeError: undefined is not an object (evaluating 'nodes[i]')
。
我也尝试过替换nodes
,只调用this
,但似乎无论我尝试什么,箭头函数在这里都不起作用。我觉得这不应该是版本问题,因为我使用的是d3的v7。有人能解释一下这里的问题是什么吗?
提前感谢!
我想明白了。显然,从v6开始,根据的讨论,上面链接中提供的箭头功能解决方案不再可能
所以现在的解决方案是:
.on("mouseover", (d) => {
d3.select(d.currentTarget)
.attr("fill", "red");
})