как подсчитать просмотры в элементах плоского списка react native

#react-native #flatlist

Вопрос:

У меня есть плоский список, и он содержит список сообщений и видео, теперь мне нужно подсчитать просмотры для каждого элемента, я попытался использовать viewabilityConfig и onViewableItemsChanged в плоском списке, и это отлично работает, если я хочу считать видимый элемент только как представление.

проблема в том, что у меня была функция, написанная внутри onViewableItemsChanged для приостановки видео сразу после того, как пользователь прокручивает видео. теперь у меня есть две функции с разным временем выполнения. как я могу справиться с этими двумя функциями ?

 onViewableItemsChanged = (info) =gt; {  if (this.props.enableView) {  console.log('item viewed after minimumViewavlitytime 5s: ', info) //done after 5s of view time  }  this.pauseVideoFunction(); //done exactly after scrolling };   viewabilityConfig = {  minimumViewTime:5000,  waitForInteraction: false,  viewAreaCoveragePercentThreshold: 95, }  

Ответ №1:

я справился с этим таким образом:

  • удалено минимальное время просмотра из файла конфигурации
  • добавил это в конструктор, так как он является компонентом класса
 this.debouncedViewCount = debounce(this.countView, 5000);*  
  • называется debouncedViewCount внутри onViewableItemsChanged

теперь у меня есть счетчик осужденных просмотров, который запускается через 5 секунд, если прокрутка не перемещается, и может приостановить видео сразу после прокрутки

 class ComponentA extends React.Component {  constructor(props) {  super(props);  this.debouncedViewCount = debounce(this.countView, 5000); //aaaaaaaaaaa  }  countView = (info) =gt; {  debounce(console.log('Debouced 5s', info), 5000, false)  }    onVideoExitScreen = (info) =gt; { //todo working on view aaaaaaaaaaaaaaaaaaaa  if (this.props.enableView) {  this.debouncedViewCount(info);  }  pauseVideoFunction();  }; }  
 //inside Flatlist onViewableItemsChanged={this.onViewableItemsChanged}