Commit 4d7b1aa 1 parent 14ff076 commit 4d7b1aa Copy full SHA for 4d7b1aa
File tree 2 files changed +57
-1
lines changed
2 files changed +57
-1
lines changed Original file line number Diff line number Diff line change
1
+ import { expect } from 'chai' ;
2
+ import getCanvas from '../get-canvas' ;
3
+
4
+ describe ( '#191' , ( ) => {
5
+ let canvas ;
6
+ let circle ;
7
+
8
+ before ( ( ) => {
9
+ canvas = getCanvas ( 'svg-circle' ) ;
10
+ circle = canvas . addShape ( 'circle' , {
11
+ attrs : {
12
+ x : 20 ,
13
+ y : 20 ,
14
+ r : 20 ,
15
+ fill : 'red' ,
16
+ } ,
17
+ } ) ;
18
+ } ) ;
19
+
20
+ it . only ( 'autoDraw should be true and immutable' , ( ) => {
21
+ expect ( canvas . get ( 'autoDraw' ) ) . eqls ( true ) ;
22
+ canvas . set ( 'autoDraw' , false ) ;
23
+ expect ( canvas . get ( 'autoDraw' ) ) . eqls ( true ) ;
24
+ } ) ;
25
+
26
+ it . only ( 'avoid redundant rendering when animating and repeat is true' , ( done ) => {
27
+ circle . animate (
28
+ {
29
+ r : 40 ,
30
+ } ,
31
+ {
32
+ duration : 200 ,
33
+ repeat : true ,
34
+ }
35
+ ) ;
36
+ setTimeout ( ( ) => {
37
+ const count = document . getElementsByTagName ( 'circle' ) . length ;
38
+ expect ( count ) . eqls ( 1 ) ;
39
+ done ( ) ;
40
+ } , 1000 ) ;
41
+ } ) ;
42
+ } ) ;
Original file line number Diff line number Diff line change @@ -10,7 +10,21 @@ import Defs from './defs';
10
10
11
11
class Canvas extends AbstractCanvas {
12
12
constructor ( cfg ) {
13
- super ( cfg ) ;
13
+ super ( {
14
+ ...cfg ,
15
+ autoDraw : true ,
16
+ } ) ;
17
+ }
18
+
19
+ // 覆盖基类中的 set 方法
20
+ set ( name , value ) {
21
+ // autoDraw 不可修改,始终为 true
22
+ // TODO: 应该在控制台给出 Warning 提示,引导用户避免这种用法。需要在 @antv/util 中提供通用的 warning 方法,便于在其他 antv 项目中使用
23
+ if ( name === 'autoDraw' ) {
24
+ this . cfg [ name ] = true ;
25
+ } else {
26
+ super . set ( name , value ) ;
27
+ }
14
28
}
15
29
16
30
/**
You can’t perform that action at this time.
0 commit comments