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

时间:2018-06-30 06:05:16

标签: dart flutter

我正在尝试将数据保存到共享的首选项中,但是每当我调用此函数时,都会在命令行中以

的形式显示消息

Closure():=>空

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

此函数存储在一个外部文件中,我在按下的图标按钮上调用为

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

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

有人指出我正确的方向

1 个答案:

答案 0 :(得分: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;
    }
}