BizCharts icon indicating copy to clipboard operation
BizCharts copied to clipboard

Legend属性中selectedMode为‘single’或'multiple'优化建议

Open GeniusLuo opened this issue 5 years ago • 3 comments

情景描述: Legend属性中selectedMode为‘single’或'multiple'都可以点击Legend来选择显示或隐藏图例中的Geom。 缺陷:‘multiple’模式下必须每个点击才能返回到全部图例显示状态。‘single’模式下无法回到全部图例显示状态。 优化建议: 无论在哪种模式,可以加个“全部”或者其它文案的可点击按钮,点击后直接显示全部图例。或者将title显示出来,点击后全部显示? 微信截图_20191031163450

GeniusLuo avatar Oct 31 '19 08:10 GeniusLuo

商量与 antv重新讨论这种交互。

Leannechn avatar Nov 04 '19 02:11 Leannechn

已经通过 charts 中的 filter 字段配合 legend 的 onClick 实现,不过头疼的是不能在 onClick 事件中,setState , 否则报错 ~~~~~, Uncaught TypeError: Cannot read property 'draw' of undefined at Category._onClick (BizCharts.js:15125) at Group.method (BizCharts.js:49543) at Group.emitEvent (BizCharts.js:12531) at Group.emit (BizCharts.js:12558) at Canvas._triggerEvent (BizCharts.js:42409) at HTMLCanvasElement. (BizCharts.js:42425)

kz739925388 avatar Nov 26 '19 09:11 kz739925388

已经通过 charts 中的 filter 字段配合 legend 的 onClick 实现,不过头疼的是不能在 onClick 事件中,setState , 否则报错 ~~~~~, Uncaught TypeError: Cannot read property 'draw' of undefined at Category._onClick (BizCharts.js:15125) at Group.method (BizCharts.js:49543) at Group.emitEvent (BizCharts.js:12531) at Group.emit (BizCharts.js:12558) at Canvas._triggerEvent (BizCharts.js:42409) at HTMLCanvasElement. (BizCharts.js:42425)

setState 放在异步中执行就好了 `like:

{ const metric = _.get(ev, ['item', 'value']); const isChecked = _.get(ev, ['checked']); Promise.resolve().then(() => { setShowUnitMetric(isChecked ? undefined : metric); }); console.log(ev); }} /> `

littleLane avatar Dec 13 '22 06:12 littleLane