flutter - 如何从外部使用 var SharedPreferences 函数 Flutter
问题描述
我使用 SharedPreferences 保存字体大小,并且当 (initstat) 数据中的 print (myfont) 为 Null 时。以及 getprefs() 之外的任何地方。为什么 ?
我用这个代码
class MyASetting extends State<SettingPage> {
bool checkfont = true;
double myfont ;
saveprefs(bool val) async {
SharedPreferences prefs = await SharedPreferences.getInstance();
setState(() {
checkfont = val;
prefs.setBool("checkfont", checkfont);
getprefs();
});
} // save sharde
getprefs() async {
try {
SharedPreferences prefs = await SharedPreferences.getInstance();
setState(() {
checkfont = prefs.getBool("checkfont");
if (checkfont == true) {
myfont = 20;
} else {
myfont = 16;
}
return myfont;
});
} catch (e) {
print("Sorry");
}
} // get shared
@override
void initState() {
super.initState();
print(myfont);
getprefs();
}
解决方案
把它放在 setState 范围之外
prefs.setBool("checkfont", checkfont);
您的最终代码必须是:
saveprefs(bool val) async {
SharedPreferences prefs = await SharedPreferences.getInstance();
prefs.setBool("checkfont", val);
setState(() {
checkfont = val;
// getprefs();
});
} // save sharde
推荐阅读
- cordova - 在 GopherJS 中获取 Cordova 设备
- php - CodeIgniter 项目的“php artisan serve”等价物是什么?
- linux - 为什么 HashiCorp 的 Vault 需要启用 ipc_lock 功能?
- python - 使用 Github 高效组织 Python 模块
- linux - 从远程服务器并行复制小文件
- sql - 使用不连续的组分区提取第一个和最后一个值
- uwp - UWP:ContentDialog 大小和边距
- javascript - 我可以通过从 PHP 获取变量来更改 Javascript 中的显示属性吗?
- javascript - 尝试附加 div - 导致 [object Object]
- c++ - Doxygen & C++:手动添加父类