@@ -10,15 +10,12 @@ export const Context = React.createContext({});
10
10
//component - CoreUI / CPopperContentWrapper
11
11
12
12
class CPopperContentWrapper extends React . Component {
13
-
14
13
getChildContext ( ) {
15
14
return this . context ;
16
15
}
17
-
18
16
render ( ) {
19
17
return this . props . children ;
20
18
}
21
-
22
19
}
23
20
24
21
CPopperContentWrapper . contextType = Context ;
@@ -38,6 +35,7 @@ const CDropdownCustom = props=>{
38
35
className,
39
36
cssModule,
40
37
//
38
+ innerRef,
41
39
dropup,
42
40
show,
43
41
group,
@@ -50,14 +48,18 @@ const CDropdownCustom = props=>{
50
48
} = omit ( props , [ 'toggle' , 'disabled' , 'inNavbar' , 'direction' ] ) ;
51
49
52
50
const fields = useRef ( {
53
- firstRender : true
51
+ firstRender : true ,
52
+ ref : { current : null }
54
53
} ) . current ;
55
54
56
- const ref = useRef ( null ) ;
55
+ const reference = ( r ) => {
56
+ fields . ref . current = r ;
57
+ innerRef && innerRef ( r ) ;
58
+ }
57
59
58
60
const getContainer = ( ) => {
59
61
if ( fields . _$container ) return fields . _$container ;
60
- fields . _$container = ReactDOM . findDOMNode ( ref . current ) ;
62
+ fields . _$container = ReactDOM . findDOMNode ( fields . ref . current ) ;
61
63
return fields . _$container ;
62
64
}
63
65
@@ -224,7 +226,7 @@ const CDropdownCustom = props=>{
224
226
inNavbar : props . inNavbar ,
225
227
} } >
226
228
< CPopperContentWrapper >
227
- < Manager { ...attributes } className = { classes } onKeyDown = { handleKeyDown } ref = { ref } />
229
+ < Manager { ...attributes } className = { classes } onKeyDown = { handleKeyDown } ref = { reference } />
228
230
</ CPopperContentWrapper >
229
231
</ Context . Provider >
230
232
) ;
0 commit comments