fix(reactivity): trigger iteration effect on Map.set

fix #709
This commit is contained in:
Evan You
2020-02-18 00:09:24 -05:00
parent cb03362b08
commit e1c9153b9e
2 changed files with 19 additions and 2 deletions

View File

@@ -184,8 +184,12 @@ export function trigger(
if (key !== void 0) {
addRunners(effects, computedRunners, depsMap.get(key))
}
// also run for iteration key on ADD | DELETE
if (type === TriggerOpTypes.ADD || type === TriggerOpTypes.DELETE) {
// also run for iteration key on ADD | DELETE | Map.SET
if (
type === TriggerOpTypes.ADD ||
type === TriggerOpTypes.DELETE ||
(type === TriggerOpTypes.SET && target instanceof Map)
) {
const iterationKey = isArray(target) ? 'length' : ITERATE_KEY
addRunners(effects, computedRunners, depsMap.get(iterationKey))
}