Можно ли определить, когда закончился рендеринг функционального компонента? - PullRequest
0 голосов
/ 08 апреля 2020

Как известно, в Functional Component нет life-cycle. только я могу использовать useEffect. Я хочу вызвать scrollToIndex функцию FlatList только один раз, после завершения рендеринга экрана.

const App = () => {
  const flatListRef = useRef(null)

  useState(() => {
    flatListRef.current.scrollToIndex({ index: 15 })
  }, [])

  return (
    <View style={styles.screen}>
      <FlatList
        ref={flatListRef}
        getItemLayout={(data, index) => (
          { length: ITEM_WIDTH, offset: ITEM_WIDTH * index, index }
        )}
        data={DAYS}
        horizontal={true}
        keyExtractor={(item, index) => index.toString()}
        renderItem={({ item }) =>
          <View style={styles.textContainer}>
            <Text style={styles.text}>{item}</Text>
          </View>}
      />
    </View>
  )
}

Здесь я получаю ошибку?

TypeError: null не является объектом (оценка 'flatListRef.current.scrollToIndex')

...