fix: update button

pull/2324/head
tangjinzhou 2020-05-28 23:36:43 +08:00
parent 242b5a3d99
commit ec4d6597d1
5 changed files with 32 additions and 26 deletions

@ -1 +1 @@
Subproject commit f3b049411f17e556d8795f40d41bfadb471ae630 Subproject commit adbfcd30aeb6c125defa35102ed659f1be03c672

View File

@ -1,4 +1,5 @@
import { filterEmpty } from '../_util/props-util'; import { inject } from 'vue';
import { filterEmpty, getSlot } from '../_util/props-util';
import PropTypes from '../_util/vue-types'; import PropTypes from '../_util/vue-types';
import { ConfigConsumerProps } from '../config-provider'; import { ConfigConsumerProps } from '../config-provider';
@ -14,8 +15,11 @@ export { ButtonGroupProps };
export default { export default {
name: 'AButtonGroup', name: 'AButtonGroup',
props: ButtonGroupProps, props: ButtonGroupProps,
inject: { setup() {
configProvider: { default: () => ConfigConsumerProps }, const configProvider = inject('configProvider') || ConfigConsumerProps;
return {
configProvider,
};
}, },
data() { data() {
return { return {
@ -26,7 +30,7 @@ export default {
}; };
}, },
render() { render() {
const { prefixCls: customizePrefixCls, size, $slots } = this; const { prefixCls: customizePrefixCls, size } = this;
const getPrefixCls = this.configProvider.getPrefixCls; const getPrefixCls = this.configProvider.getPrefixCls;
const prefixCls = getPrefixCls('btn-group', customizePrefixCls); const prefixCls = getPrefixCls('btn-group', customizePrefixCls);
@ -47,6 +51,6 @@ export default {
[`${prefixCls}`]: true, [`${prefixCls}`]: true,
[`${prefixCls}-${sizeCls}`]: sizeCls, [`${prefixCls}-${sizeCls}`]: sizeCls,
}; };
return <div class={classes}>{filterEmpty($slots.default)}</div>; return <div class={classes}>{filterEmpty(getSlot(this))}</div>;
}, },
}; };

View File

@ -69,7 +69,7 @@ export default {
$slots, $slots,
$attrs, $attrs,
} = this; } = this;
const getPrefixCls = this.configProvider().getPrefixCls; const getPrefixCls = this.configProvider.getPrefixCls;
const prefixCls = getPrefixCls('btn', customizePrefixCls); const prefixCls = getPrefixCls('btn', customizePrefixCls);
const autoInsertSpace = this.configProvider.autoInsertSpaceInButton !== false; const autoInsertSpace = this.configProvider.autoInsertSpaceInButton !== false;

View File

@ -10,7 +10,7 @@ function getWatch(keys = []) {
const watch = {}; const watch = {};
keys.forEach(k => { keys.forEach(k => {
watch[k] = function(value) { watch[k] = function(value) {
this._proxyVm._data[k] = value; this.configProvider[k] = value;
}; };
}); });
return watch; return watch;
@ -28,21 +28,19 @@ const ConfigProvider = {
pageHeader: PropTypes.object, pageHeader: PropTypes.object,
transformCellText: PropTypes.func, transformCellText: PropTypes.func,
}, },
setup(props, context) { setup(props) {
provide( const configProvider = reactive({
'configProvider',
reactive({
...props, ...props,
getPrefixCls: context.getPrefixCls, getPrefixCls: undefined,
renderEmpty: context.renderEmptyComponent, renderEmpty: undefined,
}), });
); provide('configProvider', configProvider);
return { configProvider };
},
created() {
this.configProvider.getPrefixCls = this.getPrefixCls;
this.configProvider.renderEmpty = this.renderEmpty;
}, },
// provide() {
// return {
// configProvider: this._proxyVm,
// };
// },
watch: { watch: {
...getWatch([ ...getWatch([
'prefixCls', 'prefixCls',

View File

@ -1,14 +1,18 @@
<template> <template>
<a-config-provider prefixCls="ss"> <a-config-provider>
jdjj <a-button-group class="dddd" style="color: red" @click="onClick">
<div>ddd</div> <a-button>Cancel</a-button>
<a-button type="primary">
OK
</a-button>
</a-button-group>
<a-button <a-button
:class="['test']" :class="['test']"
class="aaa" class="aaa"
style="display: inline" style="display: inline"
block block
@click="onClick"
:type="type" :type="type"
@click="onClick"
> >
Primary Primary
</a-button> </a-button>