diff --git a/src/card/Card.tsx b/src/card/Card.tsx index 1f34ed579e..dee578d108 100644 --- a/src/card/Card.tsx +++ b/src/card/Card.tsx @@ -133,20 +133,31 @@ const Card = forwardRef((props, ref) => { ); const card = ( -
+ <> {showHeader ? renderHeader() : null} {renderCover} {renderChildren} {renderFooter} -
+ ); - return loading ? ( - - {card} - - ) : ( - React.cloneElement(card, { style }) + let childrenNode: React.ReactNode = null; + if (!Reflect.has(props, 'loading')) { + childrenNode = React.cloneElement(card, { style }); + } else if (React.isValidElement(loading)) { + childrenNode = React.cloneElement(loading, null, card); + } else { + childrenNode = ( + + {card} + + ); + } + + return ( +
+ {childrenNode} +
); });