我将SocialProvider
与ChangeNotifier
一起使用。我希望它在用户登录后以及在发布到网络上的数据库后更新其Consumer
侦听器小部件。
当前,我正在调用一个Future
方法,该方法将在成功发布http后将新值插入“共享首选项”文件中,但这将不会更新UI,直到调用加载页面为止共享的首选项。
为了查看即时更新,是否有任何方法可以从ChangeNotifier
内部访问类似setState
或其他类型的Future
类型的函数?这是未来;
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
方法获取即时更新的任何想法?
答案 0 :(得分:0)
结果证明,我能够在Future<void> postSocialData
本身的范围内插入class SocialProvider with ChangeNotifier
,因此可以在Future中使用ChangeNotifier
来提醒Consumers/listeners
。