Я пытаюсь установить значение поля из SharedPreferences следующим образом:
FutureBuilder<String>(
future: _getUsername(),
initialData: 'Bruh',
builder: (BuildContext context, AsyncSnapshot<String> snapshot) {
print(snapshot);
print(snapshot.data);
print(snapshot.hasData);
return snapshot.hasData ? TextFormField(initialValue: snapshot.data, onChanged: _setUsername) : TextFormField();
}
),
Это будущее _getUsername (), которое я использую:
Future<String> _getUsername() async {
SharedPreferences prefs = await SharedPreferences.getInstance();
return prefs.getString('username') ?? 'hmm';
return "Fine";
}
И это вывод консоли:
Reloaded 0 of 567 libraries in 352ms.
I/flutter (28961): AsyncSnapshot<String>(ConnectionState.done, tesy, null)
I/flutter (28961): tesy
I/flutter (28961): true
Как видите, L2 вывода показывает 'tesy', который является значением в SharedPreferences, но я только когда-либо вижу 'Bruh' в текстовом поле (начальное значение ).
Во всех примерах, которые я могу найти, «Bruh» будет отображаться (чрезвычайно) кратко (если вообще), прежде чем «tesy» будет отображаться в поле ввода. Куда я иду не так?