У меня есть приложение с 3 вкладками. Каждая вкладка является экземпляром какого-то виджета. Теперь, что происходит, каждый раз, когда я проводю вкладки, то данные на вкладке перезагружаются. Я хочу загружать данные только тогда, когда вкладка открывается в первый раз, но если перейти к следующей вкладке и затем вернуться к предыдущей вкладке, она не должна перезагружать данные, а отображать старое состояние.
Следующий виджет создается для каждой вкладки.
class CustomersScreen extends StatefulWidget {
const CustomersScreen({Key key}) : super(key: key);
@override
CustomersScreenState createState() => CustomersScreenState();
}
class CustomersScreenState extends State<CustomersScreen> {
Firestore fireStore;
List<Customer> customers = [];
bool isLoading = false; // track if customers fetching
bool hasMore = true; // flag for more products available or not
final int documentLimit = 10; // documents to be fetched per request
Map<String, Tuple2> filters = Map();
DocumentSnapshot lastDocument; // next token
ScrollController _scrollController = ScrollController();
@override
void initState() {
super.initState();
fireStore = Firestore.instance;
print("Doing initial load");
loadData();
}
Вопросы1:
- Как предотвратить перезагрузку данных на каждом листе, как описано выше? Одна вещь, о которой я могу думать, это просто использовать флаг isDataloaded, а затем загружать / не загружать данные.