如何在Flutter中使用共享首选项

Gan*_*ari 2 dart flutter

我试图在扑扑中将数据保存到共享首选项中,但是每当我调用此函数时,我都会在命令行中收到一条消息

Closure():=>空

Future saveName(String name)async{
  SharedPreferences prefs=await SharedPreferences.getInstance();   
  prefs.setString("name ", name);
}
Run Code Online (Sandbox Code Playgroud)

此功能存储在一个外部文件中,我在按如下所示的iconbutton上调用它

new IconButton(icon: new Icon( Icons.arrow_right),onPressed: ()=>print((){saveNamePreference(name.text);}),)
Run Code Online (Sandbox Code Playgroud)

void saveNamePrederence(String name){
  saveName(name);
  print("Name Saved Successfully");
}
Run Code Online (Sandbox Code Playgroud)

有人指出我正确的方向

Bos*_*rot 5

异步不是正确的。第一次调用saveNamePreference异步:

new IconButton(
    icon: new Icon( Icons.arrow_right),
    onPressed: () async {
        var _temp = await saveNamePreference(name.text);
        print(_temp);
    }
)
Run Code Online (Sandbox Code Playgroud)

然后正确返回状态:

bool saveNamePreference(String name) async {
    try {
        SharedPreferences prefs=await SharedPreferences.getInstance();   
        prefs.setString("name ", name);
        return true;
    } catch (e) {
        print(e);
        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)