ell*_*kay 11 javascript lazy-loading reactjs react-native react-native-flatlist
什么是在反应原生中在Flatlist中应用延迟加载的最佳方法.目前在平面列表中有无限滚动.我是React原生的新手,所以我什么都不知道.
Dei*_*man 10
你应该用
<FlatList ....
onEndReached={this.endReached}
onEndReachedThreshold={.7}
.../>
Run Code Online (Sandbox Code Playgroud)
the onEndReached:当滚动位置位于渲染内容的onEndReachedThreshold范围内时调用一次。
and onEndReachedThreshold:列表的底边必须从内容的末尾到末尾(以列表的可见长度为单位)多远才能触发onEndReached回调。因此,当内容的结尾在列表的可见长度的一半以内时,值为0.5将触发onEndReached。
例如:
class YourClass extends Component {
state = { list: [], offset: 0, limit: 100 };
componentDidMount() {
this.fetchResult();
}
fetchResult = () => {
const { offset, limit, list } = this.state;
fetchModeDateFromAPI(offset, limit).then(res => {
if (!res.list) return;
this.setState({
list: list.concat(res.list),
offset: offset + 100,
limit: limit
});
});
};
render = () => {
return (
<FlatList
style={{ flex: 1 }}
extraData={this.state}
onEndReached={this.fetchResult}
onEndReachedThreshold={0.7}
data={this.state.list}
renderItem={rowData => {}}
keyExtractor={item => item.id.toString()}
/>
);
};
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11913 次 |
| 最近记录: |