Как загрузить больше данных по pageNumber, я использую scrollController, чтобы узнать, до последнего экрана и получить больше данных, но добавить l oop, чтобы получить больше данных, но данные повторяются и не получают данные, указанные c на следующей странице, так что это это функция apiserivce: -
Future<APIResponse<SeriesResult>> getSeriesSection(int pageNumber) async {
Map seriesData = {'portalId': 'primax', 'pageNumber': pageNumber};
var bodySeriesData = json.encode(seriesData);
try {
final response = await http.post(url + '/series/page',
headers: headers, body: bodySeriesData);
if (response.statusCode == 200) {
final SeriesResult results = seriesResultFromJson(response.body);
return APIResponse<SeriesResult>(data: results);
} else {
return APIResponse<SeriesResult>(
error: true, errorMessage: 'An error occured');
}
} catch (error) {
return APIResponse<SeriesResult>(
error: true, errorMessage: 'An error occured');
}
} и эта функция initState
void initState () {super.initState ();
_fetchSeriesData();
_scrollController.addListener(() async {
if (_scrollController.position.pixels ==
_scrollController.position.maxScrollExtent) {
pageNumber++;
_fetchSeriesData();
}
});
}
_fetchSeriesData() async {
setState(() {
_isLoading = true;
});
_apiResponse = await serivce.getSeriesSection(
pageNumber,
);
// if (_apiResponse.data.results.length != 0) {
for (int i = 0; i < 10; i++) {
_apiResponse.data.results.add(_apiResponse.data.results[i]);
}
// }
setState(() {
_isLoading = false;
});
}