diff --git a/components/locale-provider/LocaleReceiver.vue b/components/locale-provider/LocaleReceiver.vue index 9a1fa6b6f..ed92ff570 100644 --- a/components/locale-provider/LocaleReceiver.vue +++ b/components/locale-provider/LocaleReceiver.vue @@ -11,12 +11,12 @@ export default { children: PropTypes.func, }, inject: { - antLocale: { default: {}}, + localeData: { default: {}}, }, methods: { getLocale () { const { componentName, defaultLocale } = this - const { antLocale } = this + const { antLocale } = this.localeData const localeFromContext = antLocale && antLocale[componentName] return { ...(typeof defaultLocale === 'function' ? defaultLocale() : defaultLocale), @@ -25,7 +25,7 @@ export default { }, getLocaleCode () { - const { antLocale } = this + const { antLocale } = this.localeData const localeCode = antLocale && antLocale.locale // Had use LocaleProvide but didn't set locale if (antLocale && antLocale.exist && !localeCode) { diff --git a/components/locale-provider/index.vue b/components/locale-provider/index.vue index 17ee12cb4..5415ddd46 100644 --- a/components/locale-provider/index.vue +++ b/components/locale-provider/index.vue @@ -30,7 +30,7 @@ export default { props: { locale: PropTypes.object.def({}), }, - provide () { + data () { return { antLocale: { ...this.locale, @@ -38,8 +38,17 @@ export default { }, } }, + provide () { + return { + localeData: this.$data, + } + }, watch: { locale (val) { + this.antLocale = { + ...this.locale, + exist: true, + } setMomentLocale(val) }, },