mirror of https://github.com/vuejs/core.git
fix(reactivity): computed should not be detected as true by isProxy (#10401)
This commit is contained in:
parent
37ba93c213
commit
9da34d7af8
|
@ -1,5 +1,14 @@
|
||||||
import { isRef, ref } from '../src/ref'
|
import { isRef, ref } from '../src/ref'
|
||||||
import { isReactive, markRaw, reactive, toRaw } from '../src/reactive'
|
import {
|
||||||
|
isProxy,
|
||||||
|
isReactive,
|
||||||
|
markRaw,
|
||||||
|
reactive,
|
||||||
|
readonly,
|
||||||
|
shallowReactive,
|
||||||
|
shallowReadonly,
|
||||||
|
toRaw,
|
||||||
|
} from '../src/reactive'
|
||||||
import { computed } from '../src/computed'
|
import { computed } from '../src/computed'
|
||||||
import { effect } from '../src/effect'
|
import { effect } from '../src/effect'
|
||||||
|
|
||||||
|
@ -330,4 +339,24 @@ describe('reactivity/reactive', () => {
|
||||||
delete obj[key]
|
delete obj[key]
|
||||||
expect(dummy).toBe(false)
|
expect(dummy).toBe(false)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
test('isProxy', () => {
|
||||||
|
const foo = {}
|
||||||
|
expect(isProxy(foo)).toBe(false)
|
||||||
|
|
||||||
|
const fooRe = reactive(foo)
|
||||||
|
expect(isProxy(fooRe)).toBe(true)
|
||||||
|
|
||||||
|
const fooSRe = shallowReactive(foo)
|
||||||
|
expect(isProxy(fooSRe)).toBe(true)
|
||||||
|
|
||||||
|
const barRl = readonly(foo)
|
||||||
|
expect(isProxy(barRl)).toBe(true)
|
||||||
|
|
||||||
|
const barSRl = shallowReadonly(foo)
|
||||||
|
expect(isProxy(barSRl)).toBe(true)
|
||||||
|
|
||||||
|
const c = computed(() => {})
|
||||||
|
expect(isProxy(c)).toBe(false)
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
|
|
@ -329,8 +329,8 @@ export function isShallow(value: unknown): boolean {
|
||||||
* @param value - The value to check.
|
* @param value - The value to check.
|
||||||
* @see {@link https://vuejs.org/api/reactivity-utilities.html#isproxy}
|
* @see {@link https://vuejs.org/api/reactivity-utilities.html#isproxy}
|
||||||
*/
|
*/
|
||||||
export function isProxy(value: unknown): boolean {
|
export function isProxy(value: any): boolean {
|
||||||
return isReactive(value) || isReadonly(value)
|
return value ? !!value[ReactiveFlags.RAW] : false
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue