fix(runtime-core): make watchEffect ignore deep option (#765)
This commit is contained in:
parent
c11905fe36
commit
19a799c28b
@ -410,6 +410,24 @@ describe('api: watch', () => {
|
|||||||
expect(dummy).toBe(1)
|
expect(dummy).toBe(1)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
it('warn and not respect deep option when using effect', async () => {
|
||||||
|
const arr = ref([1, [2]])
|
||||||
|
let spy = jest.fn()
|
||||||
|
watchEffect(
|
||||||
|
() => {
|
||||||
|
spy()
|
||||||
|
return arr
|
||||||
|
},
|
||||||
|
// @ts-ignore
|
||||||
|
{ deep: true }
|
||||||
|
)
|
||||||
|
expect(spy).toHaveBeenCalledTimes(1)
|
||||||
|
;(arr.value[1] as Array<number>)[0] = 3
|
||||||
|
await nextTick()
|
||||||
|
expect(spy).toHaveBeenCalledTimes(1)
|
||||||
|
expect(`"deep" option is only respected`).toHaveBeenWarned()
|
||||||
|
})
|
||||||
|
|
||||||
it('onTrack', async () => {
|
it('onTrack', async () => {
|
||||||
const events: DebuggerEvent[] = []
|
const events: DebuggerEvent[] = []
|
||||||
let dummy
|
let dummy
|
||||||
|
@ -139,13 +139,13 @@ function doWatch(
|
|||||||
if (immediate !== undefined) {
|
if (immediate !== undefined) {
|
||||||
warn(
|
warn(
|
||||||
`watch() "immediate" option is only respected when using the ` +
|
`watch() "immediate" option is only respected when using the ` +
|
||||||
`watch(source, callback) signature.`
|
`watch(source, callback, options?) signature.`
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
if (deep !== undefined) {
|
if (deep !== undefined) {
|
||||||
warn(
|
warn(
|
||||||
`watch() "deep" option is only respected when using the ` +
|
`watch() "deep" option is only respected when using the ` +
|
||||||
`watch(source, callback) signature.`
|
`watch(source, callback, options?) signature.`
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -186,7 +186,7 @@ function doWatch(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (deep) {
|
if (cb && deep) {
|
||||||
const baseGetter = getter
|
const baseGetter = getter
|
||||||
getter = () => traverse(baseGetter())
|
getter = () => traverse(baseGetter())
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user