@@ -19,7 +19,8 @@ import {
19
19
getLocaleMessages ,
20
20
createComposer ,
21
21
EnableEmitter ,
22
- DisableEmitter
22
+ DisableEmitter ,
23
+ InejctWithOption
23
24
} from './composer'
24
25
import { createVueI18n } from './legacy'
25
26
import { I18nWarnCodes , getWarnMessage } from './warnings'
@@ -598,7 +599,8 @@ export function useI18n<
598
599
}
599
600
600
601
if ( scope === 'parent' ) {
601
- let composer = getComposer ( i18n , instance )
602
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
603
+ let composer = getComposer ( i18n , instance , ( options as any ) . __useComponent )
602
604
if ( composer == null ) {
603
605
if ( __DEV__ ) {
604
606
warn ( getWarnMessage ( I18nWarnCodes . NOT_FOUND_PARENT_SCOPE ) )
@@ -666,7 +668,8 @@ function getComposer<
666
668
Legacy extends boolean
667
669
> (
668
670
i18n : I18n < Messages , DateTimeFormats , NumberFormats , Legacy > ,
669
- target : ComponentInternalInstance
671
+ target : ComponentInternalInstance ,
672
+ useComponent = false
670
673
) : Composer < Messages , DateTimeFormats , NumberFormats > | null {
671
674
let composer : Composer < Messages , DateTimeFormats , NumberFormats > | null = null
672
675
const root = target . root
@@ -696,6 +699,10 @@ function getComposer<
696
699
VueI18nInternal < Messages , DateTimeFormats , NumberFormats > )
697
700
. __composer as Composer < Messages , DateTimeFormats , NumberFormats >
698
701
}
702
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
703
+ if ( useComponent && ! ( composer as any ) [ InejctWithOption ] ) {
704
+ composer = null
705
+ }
699
706
}
700
707
if ( composer != null ) {
701
708
break
0 commit comments