Сделать элемент React Native FlatList в центре всегда активным

#javascript #android #ios #reactjs #react-native

#javascript #Android #iOS #reactjs #react-native

Вопрос:

Привет! Я пытаюсь завершить функциональность, отображаемую на закрепленном изображении. Я сделал это с помощью события onScroll FlatList, но оно меняет значение на медленное, активный элемент не всегда находится в середине. Это какой-то способ всегда присваивать стили элементу, который находится в центре? Ниже приведен мой обработчик прокрутки.

 const onScroll = (event) => {
   const { y } = event.nativeEvent.contentOffset;
   const { height: layoutHeight } = event.nativeEvent.layoutMeasurement;
   const value = Math.floor(y / itemHeight)   Math.floor(layoutHeight / itemHeight / 2);

   if (activeItem !== value) {
      setActiveItem(value);
   }
   }
  

Ответ №1:

Попробуйте добавить async / await перед установкой значения активного элемента

 const onScroll = async (event) => {
   await const { y } = event.nativeEvent.contentOffset;
   await  const { height: layoutHeight } = event.nativeEvent.layoutMeasurement;
  await const value = Math.floor(y / itemHeight)   Math.floor(layoutHeight / itemHeight / 2);

 await  if (activeItem !== value) {
      setActiveItem(value);
   }
   }