Выпадающая кнопка «Флаттер» не сохраняет состояние во время навигации по экрану

#flutter #dart #asynchronous #constructor #dropdownbutton

Вопрос:

Привет, у меня возникла проблема, из-за которой я не могу сохранить состояние кнопки раскрывающегося списка (текст, отображаемый в самой кнопке раскрывающегося списка, который является выбранным мной значением). Я использую getX для навигации по штатам.

Из-за того, как был структурирован мой код, когда я перемещаюсь с одного экрана на второй и хочу вернуться назад, я использую Get.to(First() вместо Get.back() этого .

Вот моя логика:

  1. Я сохраню значение, выбранное пользователем из раскрывающейся кнопки, в SharedPreferences. Это значение также будет немедленно показано пользователю на самой кнопке из-за характера кнопки.
  2. Когда пользователь удалится (например, он сейчас находится на втором экране) и снова зайдет на первый экран, я загружу выбранное значение из SharedPreferences и создам элемент раскрывающейся кнопки таким образом, чтобы это значение отображалось вверху.

Проблема, с которой я сталкиваюсь: извлечение данных из SharedPreferences является асинхронным, поэтому я не знаю, как снова создать первый экран, пока я жду, когда данные будут извлечены из SharedPreferences. Кто-нибудь может мне помочь? Спасибо!

Ответ №1:

Используйте GetStorage() вместо общего предпочтения . Нет проблем с асинхронностью

 dependencies:
  get_storage: ^2.0.3


use GetStorage through an instance or use directly GetStorage().read('key')
final box = GetStorage();

To write information you must use write :

box.write('quote', 'GetX is the best');


To read values you use read:


print(box.read('quote'));
// out: GetX is the best
 

Комментарии:

1. Это сработало, спасибо!

2. пожалуйста, поднимите голос. добро пожаловать!