Свойство Typescript React Native ‘scrollToIndex’ не существует для типа ‘FlatList’

#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);