我对 Flatlist 有一个奇怪的问题,当我向下滚动时,我从 API 获取了数据,我增加了页面 +1,在页脚中,我渲染了一个微调器,但是当最后一页 == 当前页面时,这意味着除了微调器没有数据来卡在底部,尽管我将其更新为假!那么这里有什么问题!
顺便说一句,当我在 FlatList 中以这种方式调用 renderFooter
ListFooterComponent={()=> this._renderFooter()} // it disappeare the bottom spiner if last page == current page but I have an unexpected re-rendering and app laggay and in some time spinner disappeared even I scrolling to bottom!!
代码
class LastSongs extends React.PureComponent {
constructor() {
super();
this.state = {
songs: [],
loading: false,
page: 1,
last_page: 1,
};
this.isCancelled = false;
}
manipulateArray = async (array) => {
let songs = [];
array.map((track) =>
songs.push({
id: track.id,
name: track.name,
url: URL + track.sounds,
img: URL + track.avatar,
}),
);
return songs;
};
getData = async () => {
try {
this.setState({loading: true});
let response = await API.get(`/tracks?page=${this.state.page}`);
let lastPage = response.data.data.items.last_page;
let {
data: {
data: {
items: {data},
},
},
} = response;
let All_Songs = await this.manipulateArray(data);
this.setState({
songs: this.state.songs.concat(All_Songs),
last_page: lastPage,
});
} catch (err) {
console.log('err', err);
}
};
_renderItems = ({item, index}) => (
<TouchableNativeFeed
key={item.id}
onPress={() => {
this.props.saveSongs(this.state.songs, index);
this.props.isPlaying(true);
this.props.isPauseTrigger(!this.props.isPauseTrigger);
}}
);
繁花不似锦
慕沐林林
随时随地看视频慕课网APP
相关分类