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

问题描述 投票:2回答:1

我试图将数据保存到颤动的共享首选项中,但每当我调用此函数时,我在命令行中得到一条消息

Closure():=>空

Future saveName(String name)async{
  SharedPreferences prefs=await SharedPreferences.getInstance();   
  prefs.setString("name ", name);
}

这个函数存储在另一个文件中,我在iconbutton上调用它作为

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

void saveNamePrederence(String name){
  saveName(name);
  print("Name Saved Successfully");
}

有人指出我正确的方向

dart flutter
1个回答
5
投票

异步未被称为正确。首先用异步调用saveNamePreference

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

然后正确地返回状态:

bool saveNamePreference(String name) async {
    try {
        SharedPreferences prefs=await SharedPreferences.getInstance();   
        prefs.setString("name ", name);
        return true;
    } catch (e) {
        print(e);
        return false;
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.