fix(reactivity): toRef should not wrap a ref (#2103)

This commit is contained in:
Carlos Rodrigues 2020-09-15 15:29:38 +01:00 committed by GitHub
parent aa8dc9a507
commit d4bf9bcbb4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 10 additions and 4 deletions

View File

@ -236,6 +236,10 @@ describe('reactivity/ref', () => {
// mutating source should trigger effect using the proxy refs // mutating source should trigger effect using the proxy refs
a.x = 4 a.x = 4
expect(dummyX).toBe(4) expect(dummyX).toBe(4)
// should keep ref
const r = { x: ref(1) }
expect(toRef(r, 'x')).toBe(r.x)
}) })
test('toRefs', () => { test('toRefs', () => {

View File

@ -168,7 +168,9 @@ export function toRef<T extends object, K extends keyof T>(
object: T, object: T,
key: K key: K
): Ref<T[K]> { ): Ref<T[K]> {
return new ObjectRefImpl(object, key) as any return isRef(object[key])
? object[key]
: (new ObjectRefImpl(object, key) as any)
} }
// corner case when use narrows type // corner case when use narrows type