Как я могу использовать ссылки для установки обратных вызовов на FlatList? - PullRequest
0 голосов
/ 26 сентября 2019

Я пытаюсь использовать refs для обязательной установки onEndReached реквизита моего FlatList.Есть ли способ сделать это?

Я изменил пример из PR PR, который добавляет setNativeProps, который переключает цвет с черного на белый на интервале, но не может получить onEndReached или onScroll быть вызванным.

Может кто-нибудь помочь мне понять, что я делаю неправильно?

export default class Testing extends React.Component {
  componentDidMount() {
    let tick = 0
    this.list.setNativeProps({
      onEndReached: info => {
        // NEVER CALLED ?
        console.log('L231 on Scroll info ===', info)
      },

      onScroll: info => {
        // NEVER CALLED ?
        console.log('L250 info ===', info)
      },

      // Background DOES flash red on load... ? 
      style: { backgroundColor: 'red' }
    })
    setInterval(() => {
      this.list.setNativeProps({
        onEndReached: info => {
          console.log('L231 on Scroll info ===', info)
        },

        // Background DOES toggle black and white... ? 
        style: { backgroundColor: tick++ & 2 ? 'white' : 'black' }
      })
    }, 1000)
  }

  render() {
    return (
      <View style={styles.container}>
        <FlatList
          ref={component => (this.list = component)}
          style={{ backgroundColor: 'black' }}
          data={[{ key: 'a' }, { key: 'b' }]}
          renderItem={({ item }) => <Text>{item.key}</Text>}
        />
      </View>
    )
  }
}

Вещи, которые я пробовал

Установка onEndReached непосредственно на this.list ?

export default class Testing extends React.Component {
  componentDidMount() {
    this.list.onEndReached = info => {
        // NEVER CALLED ?
        console.log(info)
    }
  }
...