@@ -10,35 +10,33 @@ module.exports = {
10
10
if ( oldData ) {
11
11
let chart = this . _chart
12
12
13
- let newDataLabels = newData . datasets . map ( ( dataset ) => {
13
+ // Get new and old DataSet Labels
14
+ let newDatasetLabels = newData . datasets . map ( ( dataset ) => {
14
15
return dataset . label
15
16
} )
16
17
17
- let oldDataLabels = oldData . datasets . map ( ( dataset ) => {
18
+ let oldDatasetLabels = oldData . datasets . map ( ( dataset ) => {
18
19
return dataset . label
19
20
} )
20
21
21
- if ( JSON . stringify ( newDataLabels ) === JSON . stringify ( oldDataLabels ) ) {
22
- this . forceUpdate ( newData , chart )
22
+ // Stringify 'em for easier compare
23
+ const oldLabels = JSON . stringify ( oldDatasetLabels )
24
+ const newLabels = JSON . stringify ( newDatasetLabels )
25
+
26
+ // Check if Labels are equal and if dataset length is equal
27
+ if ( newLabels === oldLabels && oldData . datasets . length === newData . datasets . length ) {
28
+ newData . datasets . forEach ( ( dataset , i ) => {
29
+ chart . data . datasets [ i ] . data = dataset . data
30
+ } )
31
+
32
+ chart . data . labels = newData . labels
33
+ chart . update ( )
23
34
} else {
24
- this . forceRender ( )
35
+ chart . destroy ( )
36
+ this . renderChart ( this . chartData , this . options )
25
37
}
26
38
}
27
39
}
28
40
}
29
41
} ,
30
- methods : {
31
- forceUpdate ( newData , chart ) {
32
- newData . datasets . forEach ( ( dataset , i ) => {
33
- chart . data . datasets [ i ] . data = dataset . data
34
- } )
35
-
36
- chart . data . labels = newData . labels
37
- chart . update ( )
38
- } ,
39
-
40
- forceRender ( ) {
41
- this . renderChart ( this . chartData , this . options )
42
- }
43
- }
44
42
}
0 commit comments