Flutter/Dart - 在 Future 中使用 ChangeNotifier 或 setState 之类的东西?
Flutter/Dart - Use something like ChangeNotifier or setState within Future?
我正在使用 SocialProvider
和 ChangeNotifier
。我希望它在用户登录后以及 post 访问网络上的数据库后更新其 Consumer
侦听器小部件。
目前,我正在调用一个 Future
方法,该方法在成功的 http post 后将新值插入共享首选项文件,但这不会更新 UI直到调用加载共享首选项的页面。
为了查看即时更新,是否有任何方法可以从 Future
中访问 ChangeNotifier
或其他类型的 setState
类型的函数?这就是未来;
Future<void> postSocialData(String email) async {
final url = "http://example.com/example.php?currentemail=$email"
final response = await http.get(url);
String currentuserid;
if (response.statusCode == 200) {
currentuserid = response.body;
setSharedPreferences(
currentavatar: "http://example.com/" + response.body + "-user.jpg",
currentemail: email,
currentlogged: true,
currentuserid: currentuserid,
);
print(response.body);
} else {
throw Exception('We were not able to successfully post social data.');
}
}
关于如何从 Future
方法获得即时更新的任何想法?
原来我能够在 class SocialProvider with ChangeNotifier
本身的范围内插入 Future<void> postSocialData
,因此在 Future 中使用 ChangeNotifier
来提醒 Consumers/listeners
。
我正在使用 SocialProvider
和 ChangeNotifier
。我希望它在用户登录后以及 post 访问网络上的数据库后更新其 Consumer
侦听器小部件。
目前,我正在调用一个 Future
方法,该方法在成功的 http post 后将新值插入共享首选项文件,但这不会更新 UI直到调用加载共享首选项的页面。
为了查看即时更新,是否有任何方法可以从 Future
中访问 ChangeNotifier
或其他类型的 setState
类型的函数?这就是未来;
Future<void> postSocialData(String email) async {
final url = "http://example.com/example.php?currentemail=$email"
final response = await http.get(url);
String currentuserid;
if (response.statusCode == 200) {
currentuserid = response.body;
setSharedPreferences(
currentavatar: "http://example.com/" + response.body + "-user.jpg",
currentemail: email,
currentlogged: true,
currentuserid: currentuserid,
);
print(response.body);
} else {
throw Exception('We were not able to successfully post social data.');
}
}
关于如何从 Future
方法获得即时更新的任何想法?
原来我能够在 class SocialProvider with ChangeNotifier
本身的范围内插入 Future<void> postSocialData
,因此在 Future 中使用 ChangeNotifier
来提醒 Consumers/listeners
。