fix: space remounted slot, close #6500

pull/6758/head
tangjinzhou 2023-04-27 22:18:35 +08:00
parent 6d1035f1b0
commit 80fbabc66f
1 changed files with 6 additions and 5 deletions

View File

@ -1,5 +1,5 @@
import type { PropType, ExtractPropTypes, CSSProperties } from 'vue';
import { defineComponent, computed, ref, watch } from 'vue';
import { defineComponent, computed, ref, watch, Fragment } from 'vue';
import PropTypes from '../_util/vue-types';
import { filterEmpty } from '../_util/props-util';
import type { SizeType } from '../config-provider';
@ -80,8 +80,8 @@ const Space = defineComponent({
});
return () => {
const { wrap, direction = 'horizontal' } = props;
const items = filterEmpty(slots.default?.());
const children = slots.default?.();
const items = filterEmpty(children);
const len = items.length;
if (len === 0) {
@ -94,6 +94,7 @@ const Space = defineComponent({
return (
<div class={cn.value} style={style.value}>
{items.map((child, index) => {
const originIndex = children.indexOf(child);
let itemStyle: CSSProperties = {};
if (!supportFlexGap.value) {
if (direction === 'vertical') {
@ -111,7 +112,7 @@ const Space = defineComponent({
}
return (
<>
<Fragment key={originIndex}>
<div class={itemClassName} style={itemStyle}>
{child}
</div>
@ -120,7 +121,7 @@ const Space = defineComponent({
{split}
</span>
)}
</>
</Fragment>
);
})}
</div>