Skip to content

Commit edcc8b7

Browse files
committed
fix: image preview class error #4231
1 parent 8996db2 commit edcc8b7

File tree

2 files changed

+15
-12
lines changed

2 files changed

+15
-12
lines changed

components/image/PreviewGroup.tsx

+5-4
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import PreviewGroup from '../vc-image/src/PreviewGroup';
2-
import { defineComponent, inject } from 'vue';
2+
import { computed, defineComponent, inject } from 'vue';
33
import { defaultConfigProvider } from '../config-provider';
44
import PropTypes from '../_util/vue-types';
55

@@ -9,13 +9,14 @@ const InternalPreviewGroup = defineComponent({
99
props: { previewPrefixCls: PropTypes.string },
1010
setup(props, { attrs, slots }) {
1111
const configProvider = inject('configProvider', defaultConfigProvider);
12+
const prefixCls = computed(() =>
13+
configProvider.getPrefixCls('image-preview', props.previewPrefixCls),
14+
);
1215
return () => {
13-
const { getPrefixCls } = configProvider;
14-
const prefixCls = getPrefixCls('image-preview', props.previewPrefixCls);
1516
return (
1617
<PreviewGroup
17-
previewPrefixCls={prefixCls}
1818
{...{ ...attrs, ...props }}
19+
previewPrefixCls={prefixCls.value}
1920
v-slots={slots}
2021
></PreviewGroup>
2122
);

components/image/index.tsx

+10-8
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
import { App, defineComponent, ExtractPropTypes, ImgHTMLAttributes, inject, Plugin } from 'vue';
2-
import { defaultConfigProvider } from '../config-provider';
1+
import { App, defineComponent, ExtractPropTypes, ImgHTMLAttributes, Plugin } from 'vue';
32
import ImageInternal from '../vc-image';
43
import { imageProps } from '../vc-image/src/Image';
4+
import useConfigInject from '../_util/hooks/useConfigInject';
55
import PreviewGroup from './PreviewGroup';
66

77
export type ImageProps = Partial<
@@ -11,13 +11,15 @@ const Image = defineComponent<ImageProps>({
1111
name: 'AImage',
1212
inheritAttrs: false,
1313
props: imageProps as any,
14-
setup(props, ctx) {
15-
const { slots, attrs } = ctx;
16-
const configProvider = inject('configProvider', defaultConfigProvider);
14+
setup(props, { slots, attrs }) {
15+
const { prefixCls } = useConfigInject('image', props);
1716
return () => {
18-
const { getPrefixCls } = configProvider;
19-
const prefixCls = getPrefixCls('image', props.prefixCls);
20-
return <ImageInternal {...{ ...attrs, ...props, prefixCls }} v-slots={slots}></ImageInternal>;
17+
return (
18+
<ImageInternal
19+
{...{ ...attrs, ...props, prefixCls: prefixCls.value }}
20+
v-slots={slots}
21+
></ImageInternal>
22+
);
2123
};
2224
},
2325
});

0 commit comments

Comments
 (0)