diff --git a/packages/reactivity/__tests__/readonly.spec.ts b/packages/reactivity/__tests__/readonly.spec.ts index 9acd5c649..e01a12ca5 100644 --- a/packages/reactivity/__tests__/readonly.spec.ts +++ b/packages/reactivity/__tests__/readonly.spec.ts @@ -8,7 +8,9 @@ import { reactive, readonly, ref, + shallowRef, toRaw, + triggerRef, } from '../src' /** @@ -520,3 +522,16 @@ describe('reactivity/readonly', () => { expect(r.value).toBe(ro) }) }) + +test('should able to trigger on triggerRef', () => { + const r = shallowRef({ a: 1 }) + const ror = readonly(r) + let dummy + effect(() => { + dummy = ror.value.a + }) + r.value.a = 2 + expect(dummy).toBe(1) + triggerRef(ror) + expect(dummy).toBe(2) +}) diff --git a/packages/reactivity/src/dep.ts b/packages/reactivity/src/dep.ts index 196c2aaf9..8ad8a389b 100644 --- a/packages/reactivity/src/dep.ts +++ b/packages/reactivity/src/dep.ts @@ -93,6 +93,12 @@ export class Dep { */ sc: number = 0 + /** + * @internal + */ + readonly __v_skip = true + // TODO isolatedDeclarations ReactiveFlags.SKIP + constructor(public computed?: ComputedRefImpl | undefined) { if (__DEV__) { this.subsHead = undefined