1
1
import { cloneVNode , defineComponent , PropType , ExtractPropTypes } from 'vue' ;
2
2
import PropTypes from '../_util/vue-types' ;
3
- import { filterEmpty , getPropsSlot } from '../_util/props-util' ;
3
+ import { flattenChildren , getPropsSlot } from '../_util/props-util' ;
4
4
import warning from '../_util/warning' ;
5
5
import BreadcrumbItem from './BreadcrumbItem' ;
6
6
import Menu from '../menu' ;
@@ -17,7 +17,7 @@ const breadcrumbProps = {
17
17
prefixCls : PropTypes . string ,
18
18
routes : { type : Array as PropType < Route [ ] > } ,
19
19
params : PropTypes . any ,
20
- separator : PropTypes . VNodeChild ,
20
+ separator : PropTypes . any ,
21
21
itemRender : {
22
22
type : Function as PropType <
23
23
( opt : { route : Route ; params : unknown ; routes : Route [ ] ; paths : string [ ] } ) => VueNode
@@ -53,6 +53,7 @@ function defaultItemRender(opt: {
53
53
export default defineComponent ( {
54
54
name : 'ABreadcrumb' ,
55
55
props : breadcrumbProps ,
56
+ slots : [ 'separator' , 'itemRender' ] ,
56
57
setup ( props , { slots } ) {
57
58
const { prefixCls, direction } = useConfigInject ( 'breadcrumb' , props ) ;
58
59
@@ -122,10 +123,10 @@ export default defineComponent({
122
123
123
124
const { routes, params = { } } = props ;
124
125
125
- const children = filterEmpty ( getPropsSlot ( slots , props ) ) ;
126
- const separator = getPropsSlot ( slots , props , 'separator' ) ;
126
+ const children = flattenChildren ( getPropsSlot ( slots , props ) ) ;
127
+ const separator = getPropsSlot ( slots , props , 'separator' ) ?? '/' ;
127
128
128
- const itemRender = getPropsSlot ( slots , props , ' itemRender' ) || defaultItemRender ;
129
+ const itemRender = props . itemRender || slots . itemRender || defaultItemRender ;
129
130
if ( routes && routes . length > 0 ) {
130
131
// generated by route
131
132
crumbs = genForRoutes ( {
@@ -153,5 +154,4 @@ export default defineComponent({
153
154
return < div class = { breadcrumbClassName } > { crumbs } </ div > ;
154
155
} ;
155
156
} ,
156
- methods : { } ,
157
157
} ) ;
0 commit comments