FlatList не прокручивается вниз, а убирается обратно вверх - PullRequest
0 голосов
/ 20 декабря 2018

После прокрутки плоский список возвращается наверх.Любая очевидная причина, по которой это может происходить из-за моего кода?

Reaction-native-cli: 2.0.1

Reaction-native: 0.57.4

Код FlatList

return (
            <View style={{ flex: 1}}>
                    <FlatList
                        data={this.state.dataSource}
                        onEndReached = {() => this.getDeals()}
                        ListHeaderComponent = {() => <MainAdvertisement/>}
                        onEndReachedThreshold={1}
                        renderItem={this._renderItem}
                        ListFooterComponent={()=>((this.state.loading || this.state.loading=="")&&!this.state.gotAllDeals) ? <ActivityIndicator size="small" color="gray"/> : null}
                        keyExtractor={(item, index) => item._id}
                    />
            </View>
);

getDeals () Эта функция вызывается при достижении конца Flatlist.

    getDeals = () => {
    this.setState({
        loading: true,
    });
    let url = this.state.url;
    let offsetEncoded = encodeURIComponent(this.state.offset);
    url=url+"offSet="+offsetEncoded+"&&filters="+JSON.stringify(this.props.filters);
    console.log(url);
    fetch(url)
    .then((res)=>{
        if (!res.ok) {
            throw Error(res.statusText);
        }
        return res;
    })
    .then((res) => res.json())
    .then((responseJson) => {
        if(responseJson.length==0){
            this.setState({
                gotAllDeals:true,
                loading:false
            })
        }
        else{
            this.setState({
                loading: false,
                dataSource: this.state.offset==0 ? responseJson : [...this.state.dataSource, ...responseJson],
                offset: this.state.offset + responseJson.length,  
                dealList_ErrorStatus: false              
            });
        }
    })
    .catch((err) => {
        this.setState({
            dealList_ErrorStatus: true,
            loading:false
        })
        console.log("Error: "+err);
    });
}

Запись экрана

...