Flutter / Dart-在Future中使用诸如ChangeNotifier或setState之类的东西?

时间:2020-07-25 09:21:07

标签: flutter dart setstate flutter-change-notifier

我将SocialProviderChangeNotifier一起使用。我希望它在用户登录后以及在发布到网络上的数据库后更新其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方法获取即时更新的任何想法?

1 个答案:

答案 0 :(得分:0)

结果证明,我能够在Future<void> postSocialData本身的范围内插入class SocialProvider with ChangeNotifier,因此可以在Future中使用ChangeNotifier来提醒Consumers/listeners