From 19ca46ff9a64bea6cdf7ce8dc72505db5742c79a Mon Sep 17 00:00:00 2001 From: hustcc Date: Thu, 2 Apr 2020 20:01:26 +0800 Subject: [PATCH] =?UTF-8?q?fix(#2232):=20fix=20=E5=BD=93=20legend=20item?= =?UTF-8?q?=20=E7=82=B9=E5=87=BB=E7=9A=84=E6=97=B6=E5=80=99,=20=E5=9B=BE?= =?UTF-8?q?=E4=BE=8B=E9=A1=B9=E5=8F=98=E5=B0=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/chart/view.ts | 19 ++++++++++++------- src/facet/facet.ts | 7 +++++++ 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/src/chart/view.ts b/src/chart/view.ts index ce3dcb32ac..4c055c345c 100644 --- a/src/chart/view.ts +++ b/src/chart/view.ts @@ -1286,7 +1286,7 @@ export class View extends Base { // 3. 初始化 Geometry this.initGeometries(isUpdate); // 4. 处理分面逻辑,最终都是生成子 view 和 geometry - this.renderFacet(); + this.renderFacet(isUpdate); // 同样递归处理子 views each(this.views, (view: View) => { @@ -1720,14 +1720,19 @@ export class View extends Base { /** * 渲染分面,会在其中进行数据分面,然后进行子 view 创建 + * @param isUpdate */ - private renderFacet() { + private renderFacet(isUpdate: boolean) { if (this.facetInstance) { - this.facetInstance.clear(); - // 计算分面数据 - this.facetInstance.init(); - // 渲染组件和 views - this.facetInstance.render(); + if (isUpdate) { + this.facetInstance.update(); + } else { + this.facetInstance.clear(); + // 计算分面数据 + this.facetInstance.init(); + // 渲染组件和 views + this.facetInstance.render(); + } } } diff --git a/src/facet/facet.ts b/src/facet/facet.ts index bbf67a8dd6..c69da1c372 100644 --- a/src/facet/facet.ts +++ b/src/facet/facet.ts @@ -74,6 +74,13 @@ export abstract class Facet = FacetCfg, this.renderViews(); } + /** + * 更新 facet + */ + public update() { + // 其实不用做任何事情,因为 facet 最终生成的 View 和 Geometry 都在父 view 的更新中处理了 + } + /** * 清空,clear 之后如果还需要使用,需要重新调用 init 初始化过程 * 一般在数据有变更的时候调用,重新进行数据的分面逻辑