@@ -95,8 +95,8 @@ const Picker = React.forwardRef((props: PickerProps, ref) => {
9595 } = themeProps ;
9696 const { preset} = others ;
9797
98- const [ selectedItemPosition , setSelectedItemPosition ] = useState ( 0 ) ;
99- const [ items , setItems ] = useState ( propItems || extractPickerItems ( themeProps ) ) ;
98+ const [ selectedItemPosition , setSelectedItemPosition ] = useState < number > ( 0 ) ;
99+ const [ items , setItems ] = useState < PickerItemProps [ ] > ( propItems || extractPickerItems ( themeProps ) ) ;
100100
101101 useEffect ( ( ) => {
102102 if ( propItems ) {
@@ -194,6 +194,15 @@ const Picker = React.forwardRef((props: PickerProps, ref) => {
194194 }
195195 } , [ fieldType , preset , themeProps . trailingAccessory ] ) ;
196196
197+ const renderPickerItem = useCallback ( ( item : PickerItemProps ) : React . ReactElement => {
198+ return < PickerItem { ...item } /> ;
199+ } , [ ] ) ;
200+
201+ const renderItems = useCallback ( ( items : PickerProps [ 'items' ] ) => {
202+ return items && _ . map ( items , item => renderPickerItem ( item ) ) ;
203+ } ,
204+ [ renderPickerItem ] ) ;
205+
197206 const _renderCustomModal : ExpandableOverlayProps [ 'renderCustomOverlay' ] = ( {
198207 visible,
199208 closeExpandable,
@@ -205,7 +214,7 @@ const Picker = React.forwardRef((props: PickerProps, ref) => {
205214 closeModal : closeExpandable ,
206215 toggleModal : toggleExpandable ,
207216 onSearchChange : _onSearchChange ,
208- children,
217+ children : children || renderItems ( items ) ,
209218 // onDone is relevant to multi mode only
210219 onDone : ( ) => onDoneSelecting ( multiDraftValue ) ,
211220 onCancel : cancelSelect
0 commit comments