fix: confirm throw error & renderEmpty error

pull/2682/head
tanjinzhou 2020-07-28 18:37:07 +08:00
parent df83968de4
commit d7c4377551
8 changed files with 26 additions and 27 deletions

@ -1 +1 @@
Subproject commit 51cd1e3aea790432b220a7233ba189899438f031
Subproject commit 568de59ace46dcb555a5728153f69482b2732515

View File

@ -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('确定');
});
});

View File

@ -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([

View File

@ -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);

View File

@ -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 <ConfirmDialog {...cdProps} />;
return this.vIf ? <ConfirmDialog {...cdProps} /> : null;
},
}).mount(el);
}).mount(div);
}
confirmDialogInstance = render(currentConfig);

View File

@ -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';

View File

@ -4,7 +4,7 @@
</div>
</template>
<script>
import demo from '../antdv-demo/docs/comment/demo/index';
import demo from '../antdv-demo/docs/config-provider/demo/index';
export default {
components: {

View File

@ -103,7 +103,16 @@ module.exports = {
},
resolve: {
alias: {
'ant-design-vue/es/locale/en_US': path.join(
__dirname,
'./components/locale-provider/en_US.js',
),
'ant-design-vue/es/locale/zh_CN': path.join(
__dirname,
'./components/locale-provider/zh_CN.js',
),
'ant-design-vue': path.join(__dirname, './components'),
// vue$: 'vue/dist/vue.esm.js',
},
extensions: ['.js', '.jsx', '.vue', '.md'],