fix(reactivity): should add allowRecurse to the effect (#2213)

So that the scheduler also respects effect's allowRecurse option.

fix #2200
This commit is contained in:
HcySunYang
2020-10-06 04:36:02 +08:00
committed by GitHub
parent 28d5fd7a28
commit ea1f87eabf
2 changed files with 45 additions and 43 deletions

View File

@@ -17,6 +17,7 @@ export interface ReactiveEffect<T = any> {
raw: () => T
deps: Array<Dep>
options: ReactiveEffectOptions
allowRecurse: boolean
}
export interface ReactiveEffectOptions {
@@ -100,6 +101,7 @@ function createReactiveEffect<T = any>(
}
} as ReactiveEffect
effect.id = uid++
effect.allowRecurse = !!options.allowRecurse
effect._isEffect = true
effect.active = true
effect.raw = fn
@@ -180,7 +182,7 @@ export function trigger(
const add = (effectsToAdd: Set<ReactiveEffect> | undefined) => {
if (effectsToAdd) {
effectsToAdd.forEach(effect => {
if (effect !== activeEffect || effect.options.allowRecurse) {
if (effect !== activeEffect || effect.allowRecurse) {
effects.add(effect)
}
})