Flutter 颤振共享参考未来函数同时返回两种不同状态

Flutter 颤振共享参考未来函数同时返回两种不同状态,flutter,asynchronous,async-await,sharedpreferences,future,Flutter,Asynchronous,Async Await,Sharedpreferences,Future,奇怪的是,我让两个用户都有一个值,但“没有偏好数据”被打印出来。有什么建议吗 请注意,即使我直接将future:init()更改为future:SharedReferences.getInstance(),同样的问题仍然存在 谢谢。我认为错误在于下面这行。使用paranthesis在不等待输出的情况下执行函数,并返回void。稍后,当future完成时,它返回用户,从而给出2个不同的输出。按如下方式更新代码: future:init()// Future<SharedPreferences

奇怪的是,我让两个用户都有一个值,但“没有偏好数据”被打印出来。有什么建议吗

请注意,即使我直接将future:init()更改为future:SharedReferences.getInstance(),同样的问题仍然存在


谢谢。

我认为错误在于下面这行。使用paranthesis在不等待输出的情况下执行函数,并返回void。稍后,当future完成时,它返回用户,从而给出2个不同的输出。按如下方式更新代码:

future:init()//
Future<SharedPreferences> init() async {
  SharedPreferences prefs = await SharedPreferences.getInstance();
  ...
  return prefs;
}
@override
  Widget build(BuildContext context) => FutureBuilder(
      future: init()
      builder: (context, p) {
        if (p.hasData) {
          user = p.data.getString('user') ?? "";
          } else {
          user = "";
          print("No Preference Data");
        }
.....
future: _myFunction,
future: () => _myFunction(),