在React Native的FlatList中延迟加载项目吗?

时间:2019-03-19 06:43:18

标签: javascript react-native react-native-android react-native-ios react-native-flatlist

我已经集成了FlatList,我想延迟1000毫升来加载每个项目。第一次加载索引为0,在1000毫升加载后索引为1 ...

可能会延迟FlatList项目。

请帮助我。

谢谢。

1 个答案:

答案 0 :(得分:1)

这是我想出的,

这不是完美的,但是应该可以完成您的工作。

基本上,我计算了您的索引并将其乘以1000,然后将该数字乘以Item组件中的超时时间

https://snack.expo.io/@azaabudeen/authentic-beef-jerky

    const data = [
  {name: 'name1'},
  {name: 'name2'},
  {name: 'name3'},
  {name: 'name4'},
  {name: 'name5'},
  {name: 'name6'},
  {name: 'name7'},
]
class Item extends React.Component {
  state = { loading: true }

  componentDidMount() {
    setTimeout(() => this.setState({ loading: false }), this.props.time);
  }

  render() {
    if(this.state.loading) {
      return null;
    }
    return(
      <View>
        <Text>{this.props.data.name}</Text>
      </View>
    );
  }
}
export default class App extends React.Component {
  renderItem=({ item, index}) => {
    return(
      <Item time={index * 1000} data={item}/>
    );
  }
  render() {
    return (
      <View style={styles.container}>
       <FlatList 
        data={data}
        initialNumToRender={0}
        renderItem={this.renderItem}
       />
      </View>
    );
  }
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
  },

});