File tree 1 file changed +8
-7
lines changed
1 file changed +8
-7
lines changed Original file line number Diff line number Diff line change @@ -176,17 +176,18 @@ export function trigger(
176
176
}
177
177
const effects = new Set < ReactiveEffect > ( )
178
178
const computedRunners = new Set < ReactiveEffect > ( )
179
- if (
180
- type === TriggerOpTypes . CLEAR ||
181
- ( key === 'length' &&
182
- isArray ( target ) &&
183
- ( newValue as number ) < ( oldValue as number ) )
184
- ) {
185
- // collection being cleared or Array length mutation
179
+ if ( type === TriggerOpTypes . CLEAR ) {
180
+ // collection being cleared
186
181
// trigger all effects for target
187
182
depsMap . forEach ( dep => {
188
183
addRunners ( effects , computedRunners , dep )
189
184
} )
185
+ } else if ( key === 'length' && isArray ( target ) ) {
186
+ depsMap . forEach ( ( dep , key ) => {
187
+ if ( key === 'length' || key >= ( newValue as number ) ) {
188
+ addRunners ( effects , computedRunners , dep )
189
+ }
190
+ } )
190
191
} else {
191
192
// schedule runs for SET | ADD | DELETE
192
193
if ( key !== void 0 ) {
You can’t perform that action at this time.
0 commit comments