когда я использую setState (), текст появляется в консоли отладки ..
Аргумент обратного вызова setState () вернул Future.
Метод setState () в _LoginActivityState # 9cd91 был вызван с замыканием или методом, который возвратил Future. Может быть, это помечено как «асинхронный».
Вместо выполнения асинхронной работы внутри вызова setState (), сначала выполните эту работу (без обновления состояния виджета), а затем синхронно обновите состояние внутри вызова setState ().
Future<void> login() async {
final formState = formKey.currentState;
if (formState.validate()) {
formState.save();
try {
final response = await UserController.login({
"username": username,
"password": password,
});
if (response != null && response["success"]) {
setState(() async {
accessToken = response['token'];
//print(token);
if (accessToken != null) {
await Http.setAccessToken("Bearer $accessToken");
}
print('$accessToken');
final getMe = await AiframeworkController.getProfile();
print('data: $getMe');
if (getMe != null && getMe['is_verified'] == true) {
return Navigator.pushReplacement(
context, MaterialPageRoute(builder: (context) => MainActivity()));
} else {
return Center(
child: CircularProgressIndicator(),
);
}
});
}
} catch (e) {
print(e.message);
}
}
}