feat: update locale-provider

pull/2439/head^2
tangjinzhou 2020-06-22 23:16:47 +08:00
parent a25e76a314
commit 196acac2ba
2 changed files with 12 additions and 11 deletions

View File

@ -1,3 +1,4 @@
import { inject } from 'vue';
import PropTypes from '../_util/vue-types'; import PropTypes from '../_util/vue-types';
import defaultLocaleData from './default'; import defaultLocaleData from './default';
@ -8,8 +9,10 @@ export default {
defaultLocale: PropTypes.oneOfType([PropTypes.object, PropTypes.func]), defaultLocale: PropTypes.oneOfType([PropTypes.object, PropTypes.func]),
children: PropTypes.func, children: PropTypes.func,
}, },
inject: { setup() {
localeData: { default: () => ({}) }, return {
localeData: inject('localeData', {}),
};
}, },
methods: { methods: {
getLocale() { getLocale() {

View File

@ -1,9 +1,10 @@
import { provide } from 'vue';
import PropTypes from '../_util/vue-types'; import PropTypes from '../_util/vue-types';
import * as moment from 'moment'; import * as moment from 'moment';
import interopDefault from '../_util/interopDefault'; import interopDefault from '../_util/interopDefault';
import { changeConfirmLocale } from '../modal/locale'; import { changeConfirmLocale } from '../modal/locale';
import Base from '../base';
import warning from '../_util/warning'; import warning from '../_util/warning';
import { getSlot } from '../_util/props-util';
// export interface Locale { // export interface Locale {
// locale: string; // locale: string;
// Pagination?: Object; // Pagination?: Object;
@ -45,10 +46,8 @@ const LocaleProvider = {
}, },
}; };
}, },
provide() { created() {
return { provide('localeData', this.$data);
localeData: this.$data,
};
}, },
watch: { watch: {
locale(val) { locale(val) {
@ -69,14 +68,13 @@ const LocaleProvider = {
changeConfirmLocale(); changeConfirmLocale();
}, },
render() { render() {
return this.$slots.default ? this.$slots.default() : null; return getSlot(this);
}, },
}; };
/* istanbul ignore next */ /* istanbul ignore next */
LocaleProvider.install = function(Vue) { LocaleProvider.install = function(app) {
Vue.use(Base); app.component(LocaleProvider.name, LocaleProvider);
Vue.component(LocaleProvider.name, LocaleProvider);
}; };
export default LocaleProvider; export default LocaleProvider;