diff --git a/src/WheelPicker.tsx b/src/WheelPicker.tsx index cd0f0c4..d1641e6 100644 --- a/src/WheelPicker.tsx +++ b/src/WheelPicker.tsx @@ -1,4 +1,4 @@ -import React, { useEffect, useMemo, useRef, useState } from 'react'; +import React, { ComponentType, MutableRefObject, useEffect, useMemo, useRef, useState } from 'react'; import { StyleProp, TextStyle, @@ -30,6 +30,7 @@ interface Props { visibleRest?: number; decelerationRate?: 'normal' | 'fast' | number; flatListProps?: Omit, 'data' | 'renderItem'>; + flatListComponent?: ComponentType | { ref: MutableRefObject }> } const WheelPicker: React.FC = ({ @@ -48,8 +49,9 @@ const WheelPicker: React.FC = ({ decelerationRate = 'fast', containerProps = {}, flatListProps = {}, + flatListComponent = null }) => { - const flatListRef = useRef(null); + const flatListRef = useRef(null); const [scrollY] = useState(new Animated.Value(0)); const containerHeight = (1 + visibleRest * 2) * itemHeight; @@ -113,6 +115,8 @@ const WheelPicker: React.FC = ({ }); }, [selectedIndex]); + const CustomFlatList = flatListComponent || Animated.FlatList + return ( = ({ }, ]} /> - - {...flatListProps} + = ({ visibleRest={visibleRest} /> )} + {...flatListProps} /> );