#typescript #react-native
#typescript #react-native
Вопрос:
У меня есть компонент, который прокручивает React Native FlatList:
<BottomCarousel
...
onSnapToItem={(index) => {
myList.current?.scrollToIndex({ animated: false, index });
}}
/>
myList
является, FlatList
на которое ссылается useRef
:
const myList = useRef<FlatList<SomeList>>(null);
И я определяю тип списка с помощью:
type SomeList = {
id: string;
name: string;
...
Здесь нет ничего особенного. Все это работает, но я получаю предупреждение / ошибку TypeScript:
Property 'scrollToIndex' does not exist on type 'FlatList<SomeList>'.
Есть идеи, почему? Что я здесь делаю не так?
Комментарии:
1. Кажется странным, вы уверены, что импортируете
FlatList
из правильного пакета? Единственная идея, которая у меня есть, заключается в том, что импорт неверен, потому чтоFlatList
вreact-native
определенно есть свойствоscrollToIndex
…2. @AlexChashin ты попал в точку! Я импортировал FlatList из react-native-gesture-handler. Обработчик жестов. Спасибо, вы сделали мой день!
Ответ №1:
На случай, если это кому-нибудь поможет, я столкнулся с той же проблемой и правильно выполнил импорт из ‘react-native’.
Я использовал typescript и неправильно ввел определение ссылки.
Старый код:
const flatListRef = useRef(FlatList);
Изменил это и решил проблему:
const flatListRef = useRef<FlatList>(null);