File tree Expand file tree Collapse file tree 1 file changed +15
-4
lines changed Expand file tree Collapse file tree 1 file changed +15
-4
lines changed Original file line number Diff line number Diff line change @@ -155,10 +155,7 @@ export function defineReactive (
155
155
childOb . dep . depend ( )
156
156
}
157
157
if ( Array . isArray ( value ) ) {
158
- for ( let e , i = 0 , l = value . length ; i < l ; i ++ ) {
159
- e = value [ i ]
160
- e && e . __ob__ && e . __ob__ . dep . depend ( )
161
- }
158
+ dependArray ( value )
162
159
}
163
160
}
164
161
return value
@@ -234,3 +231,17 @@ export function del (obj: Object, key: string) {
234
231
}
235
232
ob . dep . notify ( )
236
233
}
234
+
235
+ /**
236
+ * Collect dependencies on array elements when the array is touched, since
237
+ * we cannot intercept array element access like property getters.
238
+ */
239
+ function dependArray ( value : Array < any > ) {
240
+ for ( let e , i = 0 , l = value . length ; i < l ; i ++ ) {
241
+ e = value [ i ]
242
+ e && e . __ob__ && e . __ob__ . dep . depend ( )
243
+ if ( Array . isArray ( e ) ) {
244
+ dependArray ( e )
245
+ }
246
+ }
247
+ }
You can’t perform that action at this time.
0 commit comments