File tree 2 files changed +16
-1
lines changed
2 files changed +16
-1
lines changed Original file line number Diff line number Diff line change @@ -892,6 +892,21 @@ describe('api: watch', () => {
892
892
expect ( sideEffect ) . toBe ( 2 )
893
893
} )
894
894
895
+ test ( 'should force trigger on triggerRef when watching multiple sources: shallow ref array' , async ( ) => {
896
+ const v = shallowRef ( [ ] as any )
897
+ const spy = jest . fn ( )
898
+ watch ( [ v ] , ( ) => {
899
+ spy ( )
900
+ } )
901
+
902
+ v . value . push ( 1 )
903
+ triggerRef ( v )
904
+
905
+ await nextTick ( )
906
+ // should trigger now
907
+ expect ( spy ) . toHaveBeenCalledTimes ( 1 )
908
+ } )
909
+
895
910
// #2125
896
911
test ( 'watchEffect should not recursively trigger itself' , async ( ) => {
897
912
const spy = jest . fn ( )
Original file line number Diff line number Diff line change @@ -212,7 +212,7 @@ function doWatch(
212
212
deep = true
213
213
} else if ( isArray ( source ) ) {
214
214
isMultiSource = true
215
- forceTrigger = source . some ( isReactive )
215
+ forceTrigger = source . some ( s => isReactive ( s ) || isShallow ( s ) )
216
216
getter = ( ) =>
217
217
source . map ( s => {
218
218
if ( isRef ( s ) ) {
You can’t perform that action at this time.
0 commit comments