fix(reactivity): effect shoud only recursively self trigger with explicit options
fix #2125
This commit is contained in:
@@ -25,6 +25,7 @@ export interface ReactiveEffectOptions {
|
||||
onTrack?: (event: DebuggerEvent) => void
|
||||
onTrigger?: (event: DebuggerEvent) => void
|
||||
onStop?: () => void
|
||||
allowRecurse?: boolean
|
||||
}
|
||||
|
||||
export type DebuggerEvent = {
|
||||
@@ -178,7 +179,11 @@ export function trigger(
|
||||
const effects = new Set<ReactiveEffect>()
|
||||
const add = (effectsToAdd: Set<ReactiveEffect> | undefined) => {
|
||||
if (effectsToAdd) {
|
||||
effectsToAdd.forEach(effect => effects.add(effect))
|
||||
effectsToAdd.forEach(effect => {
|
||||
if (effect !== activeEffect || effect.options.allowRecurse) {
|
||||
effects.add(effect)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user