我正在尝试将数据保存到共享的首选项中,但是每当我调用此函数时,都会在命令行中以
的形式显示消息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");
}
有人指出我正确的方向
答案 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;
}
}