Я хочу установить переменные sharedPreferences на этой странице, но когда я вызываю функции (например, _getUsername), я получал ошибку типа «Flutter:« Future »не является подтипом типа« String »». Как мне достать и установить ...

0
notNowOnlyCoding 19 Мар 2021 в 17:23

3 ответа

Лучший ответ

В initstate запустите такой код

  @override
  void initState() {
    super.initState();
    _getUsername().then((v){
      setState((){username = v});
    };
    _getPassword().then((v){
      setState((){password= v});
    };
    _getUrl().then((v){
      setState((){url= v});
    }; 
  }

Теперь мы обновляем значение текстовых полей после того, как sharedpreferences получил нам значение

1
Siddharth Agrawal 19 Мар 2021 в 14:42

Поскольку ваша _getUsername() является асинхронной функцией, вам необходимо вернуть Future. В связи с этим вам нужно await _getUsername() или вызвать _getUsername().then((value) => ..), чтобы получить строку вместо Future<String>.

0
quoci 19 Мар 2021 в 14:38

Попробуй позвонить вот так

_getUsername().then((value) => ....)
0
Ash Khachatryan 19 Мар 2021 в 14:26