Я создаю ListView из данных, полученных с помощью GraphQL API.
Я использую пакет flutter_graphql для обработки моего запроса Вот фрагмент кода
build(BuildContext context){
return Query(
options: QueryOptions(
documentNode: gql(readRepositories),
variables: {'nRepositories': 50},
),
builder: (QueryResult result, { VoidCallback refetch, FetchMore fetchMore }) {
if (result.hasException) {
return Text(result.exception.toString());
}
if (result.loading) {
return CircularProgressIndicator();
}
repositories = result.data['viewer']['repositories']['nodes'];
return ListView.builder(
controller: repositoriesController,
itemCount: repositories.length,
itemBuilder: (context, index) {
final repository = repositories[index];
return ListTile(
leading: Icon(Icons.flight_land),
title: Text(repository['name']),
onTap: () {
Navigator.of(context).push(MaterialPageRoute( builder: (context) => RepositoryDetail(repository: repository,)));
}
)
});
},
);
}
Моя проблема заключается в том, что после перехода пользователя к подробная страница затем, когда пользователь нажмет кнопку BackButton, эта сборка будет перестроена и создаст новый запрос к API.
Примечания:
- Существуют фильтры, которые будут вызывать этот виджет и перестраивать его
- На свитке есть нумерация страниц
Как обрабатывать этот сценарий?