Просмотр исходного кода

fix(reactivity): make toRaw work on proxies created by proxyRef

Evan You 1 год назад
Родитель
Сommit
46c3ab1d71
1 измененных файлов с 4 добавлено и 1 удалено
  1. 4 1
      packages/reactivity/src/ref.ts

+ 4 - 1
packages/reactivity/src/ref.ts

@@ -243,7 +243,10 @@ export function toValue<T>(source: MaybeRefOrGetter<T>): T {
 }
 }
 
 
 const shallowUnwrapHandlers: ProxyHandler<any> = {
 const shallowUnwrapHandlers: ProxyHandler<any> = {
-  get: (target, key, receiver) => unref(Reflect.get(target, key, receiver)),
+  get: (target, key, receiver) =>
+    key === ReactiveFlags.RAW
+      ? target
+      : unref(Reflect.get(target, key, receiver)),
   set: (target, key, value, receiver) => {
   set: (target, key, value, receiver) => {
     const oldValue = target[key]
     const oldValue = target[key]
     if (isRef(oldValue) && !isRef(value)) {
     if (isRef(oldValue) && !isRef(value)) {