You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React环境下Anychart绘图标注的Label实现及选中获取问题咨询

问题1:Label标注用户自定义修改功能实现

可以实现。Anychart Stock的Label标注原生支持内容修改,你可以直接调用Label实例的text()方法传入新的文本值,修改后调用chart.draw()刷新图表即可生效。
如果要做用户交互入口,可以自行绑定交互事件,比如监听Label的双击事件弹出输入框,用户输入完成后直接将内容赋值给当前选中的Label实例即可,不需要额外引入其他依赖。

问题2:getSelectedAnnotation()返回null问题

这个问题和React函数组件的写法无关,是Anychart本身的事件触发时机导致的:annotationSelect事件触发时,图表内部的标注选中状态还未完成更新,同步调用getSelectedAnnotation()自然拿不到对应的实例。
你不需要额外调用该方法获取选中对象,事件回调返回的e.annotation就是当前选中的标注实例,直接操作该对象即可。如果你一定要调用getSelectedAnnotation()获取,可以加一层短延时等待内部状态更新完成,示例代码如下:

chart.listen(`annotationSelect`, function (e) {
  if (e.annotation.type === `label`) {
    console.log(e.annotation) // 直接使用该实例即可完成所有操作
    setTimeout(() => {
      const s = chart.annotations().getSelectedAnnotation()
      console.log(s) // 延时后可正常获取选中对象
    }, 50)
  }
})

内容的提问来源于stack exchange,提问作者brian goo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 23:54:02