Skip to content

Commit 58195f0

Browse files
committed
fix(ref): pass raw class to trigger/track
1 parent 098138a commit 58195f0

File tree

2 files changed

+5
-5
lines changed

2 files changed

+5
-5
lines changed

packages/reactivity/src/computed.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { effect, ReactiveEffect, trigger, track } from './effect'
22
import { TriggerOpTypes, TrackOpTypes } from './operations'
33
import { Ref } from './ref'
44
import { isFunction, NOOP } from '@vue/shared'
5-
import { ReactiveFlags } from './reactive'
5+
import { ReactiveFlags, toRaw } from './reactive'
66

77
export interface ComputedRef<T = any> extends WritableComputedRef<T> {
88
readonly value: T
@@ -38,7 +38,7 @@ class _ComputedRef<T> {
3838
scheduler: () => {
3939
if (!this._dirty) {
4040
this._dirty = true
41-
trigger(this, TriggerOpTypes.SET, 'value')
41+
trigger(toRaw(this), TriggerOpTypes.SET, 'value')
4242
}
4343
}
4444
})
@@ -51,7 +51,7 @@ class _ComputedRef<T> {
5151
this._value = this.effect()
5252
this._dirty = false
5353
}
54-
track(this, TrackOpTypes.GET, 'value')
54+
track(toRaw(this), TrackOpTypes.GET, 'value')
5555
return this._value
5656
}
5757

packages/reactivity/src/ref.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,15 +52,15 @@ class _Ref<T> {
5252
}
5353

5454
get value() {
55-
track(this, TrackOpTypes.GET, 'value')
55+
track(toRaw(this), TrackOpTypes.GET, 'value')
5656
return this._value
5757
}
5858

5959
set value(newVal) {
6060
if (hasChanged(toRaw(newVal), this._rawValue)) {
6161
this._rawValue = newVal
6262
this._value = this._shallow ? newVal : convert(newVal)
63-
trigger(this, TriggerOpTypes.SET, 'value', newVal)
63+
trigger(toRaw(this), TriggerOpTypes.SET, 'value', newVal)
6464
}
6565
}
6666

0 commit comments

Comments
 (0)