feat(watch): warn when using lazy with simple callback

This commit is contained in:
Evan You
2019-12-18 11:54:12 -05:00
parent c2c9c2b57e
commit 3deb20df63
2 changed files with 15 additions and 5 deletions

View File

@@ -29,6 +29,7 @@ import {
} from './errorHandling'
import { onBeforeUnmount } from './apiLifecycle'
import { queuePostRenderEffect } from './renderer'
import { warn } from './warning'
export type WatchHandler<T = any> = (
value: T,
@@ -197,14 +198,20 @@ function doWatch(
scheduler: applyCb ? () => scheduler(applyCb) : scheduler
})
if (!lazy || !cb) {
if (lazy && cb) {
oldValue = runner()
} else {
if (__DEV__ && lazy && !cb) {
warn(
`watch() lazy option is only respected when using the ` +
`watch(getter, callback) signature.`
)
}
if (applyCb) {
scheduler(applyCb)
} else {
scheduler(runner)
}
} else {
oldValue = runner()
}
recordEffect(runner)