From d7c437755192a1445f54268dd06c58ef94093bb7 Mon Sep 17 00:00:00 2001 From: tanjinzhou <415800467@qq.com> Date: Tue, 28 Jul 2020 18:37:07 +0800 Subject: [PATCH] fix: confirm throw error & renderEmpty error --- antdv-demo | 2 +- .../config-provider/__tests__/index.test.js | 4 ++-- components/config-provider/index.jsx | 17 ++++++----------- components/locale-provider/index.jsx | 6 ++---- components/modal/confirm.js | 10 ++++------ components/style.js | 3 +-- examples/App.vue | 2 +- webpack.config.js | 9 +++++++++ 8 files changed, 26 insertions(+), 27 deletions(-) diff --git a/antdv-demo b/antdv-demo index 51cd1e3ae..568de59ac 160000 --- a/antdv-demo +++ b/antdv-demo @@ -1 +1 @@ -Subproject commit 51cd1e3aea790432b220a7233ba189899438f031 +Subproject commit 568de59ace46dcb555a5728153f69482b2732515 diff --git a/components/config-provider/__tests__/index.test.js b/components/config-provider/__tests__/index.test.js index 7e0dd49e8..99d3b6364 100644 --- a/components/config-provider/__tests__/index.test.js +++ b/components/config-provider/__tests__/index.test.js @@ -25,7 +25,7 @@ describe('ConfigProvider', () => { ); }, }); - expect(wrapper.find({ name: 'Wave' }).vm.csp).toBe(csp); + expect(wrapper.findComponent('Wave').vm.csp).toBe(csp); }); it('autoInsertSpaceInButton', () => { @@ -39,6 +39,6 @@ describe('ConfigProvider', () => { }, }); - expect(wrapper.find({ name: 'AButton' }).text()).toBe('确定'); + expect(wrapper.findComponent('AButton').text()).toBe('确定'); }); }); diff --git a/components/config-provider/index.jsx b/components/config-provider/index.jsx index 4935993aa..eb7e7f714 100644 --- a/components/config-provider/index.jsx +++ b/components/config-provider/index.jsx @@ -27,18 +27,13 @@ const ConfigProvider = { pageHeader: PropTypes.object, transformCellText: PropTypes.func, }, - setup(props) { - const configProvider = reactive({ - ...props, - getPrefixCls: undefined, - renderEmpty: undefined, - }); - provide('configProvider', configProvider); - return { configProvider }; - }, created() { - this.configProvider.getPrefixCls = this.getPrefixCls; - this.configProvider.renderEmpty = this.renderEmpty; + this.configProvider = reactive({ + ...this.$props, + getPrefixCls: this.getPrefixCls, + renderEmpty: this.renderEmptyComponent, + }); + provide('configProvider', this.configProvider); }, watch: { ...getWatch([ diff --git a/components/locale-provider/index.jsx b/components/locale-provider/index.jsx index be64afd40..fa7787aca 100644 --- a/components/locale-provider/index.jsx +++ b/components/locale-provider/index.jsx @@ -46,13 +46,10 @@ const LocaleProvider = { }, }; }, - created() { - provide('localeData', this.$data); - }, watch: { locale(val) { this.antLocale = { - ...this.locale, + ...val, exist: true, }; setMomentLocale(val); @@ -60,6 +57,7 @@ const LocaleProvider = { }, }, created() { + provide('localeData', this.$data); const { locale } = this; setMomentLocale(locale); changeConfirmLocale(locale && locale.Modal); diff --git a/components/modal/confirm.js b/components/modal/confirm.js index 5ffee6215..1afd8ab13 100644 --- a/components/modal/confirm.js +++ b/components/modal/confirm.js @@ -6,8 +6,6 @@ import Omit from 'omit.js'; export default function confirm(config) { const div = document.createElement('div'); - const el = document.createElement('div'); - div.appendChild(el); document.body.appendChild(div); let currentConfig = { ...Omit(config, ['parentContext']), close, visible: true }; @@ -25,7 +23,7 @@ export default function confirm(config) { } function destroy(...args) { if (confirmDialogInstance && div.parentNode) { - confirmDialogInstance.unmount(div); + confirmDialogInstance.vIf = false; // hack destroy confirmDialogInstance = null; div.parentNode.removeChild(div); } @@ -47,14 +45,14 @@ export default function confirm(config) { return createApp({ parent: config.parentContext, data() { - return { confirmDialogProps }; + return { confirmDialogProps, vIf: true }; }, render() { // 先解构,避免报错,原因不详 const cdProps = { ...this.confirmDialogProps }; - return ; + return this.vIf ? : null; }, - }).mount(el); + }).mount(div); } confirmDialogInstance = render(currentConfig); diff --git a/components/style.js b/components/style.js index acf4fc160..c65a0cfb9 100644 --- a/components/style.js +++ b/components/style.js @@ -45,7 +45,6 @@ import './transfer/style'; import './tree/style'; import './upload/style'; import './layout/style'; -import './form/style'; import './anchor/style'; import './list/style'; import './carousel/style'; @@ -59,5 +58,5 @@ import './statistic/style'; import './result/style'; import './descriptions/style'; import './page-header/style'; -import './form-model/style'; +import './form/style'; // import './color-picker/style'; diff --git a/examples/App.vue b/examples/App.vue index e3416a046..622f757f6 100644 --- a/examples/App.vue +++ b/examples/App.vue @@ -4,7 +4,7 @@