flutter - Flutter 如何正确调用 initState()
问题描述
您好 IM 尝试从 db 和 sharepref 加载初始数据作为用户首次打开的页面。
...
List questionsList = [];
bool _languageA = false;
@override
void initState() {
super.initState();
loadData(); // seting for some dropdown menu
_getLanguageChoise(); //geting from sharepref bool value
_getData(arabic: _languageArabic).then((value) { //async db call load List ext...
setState(() {});
});
}
问题是 "questionsList" 和 "_languageA" bool 没有在 initState 中归档,所以我得到 null 或初始值,只有当我刷新状态或重新加载时 List 得到归档和 var 得到值......所以我需要按顺序做在构建方法之前有初始归档变量,以便用户可以看到..
解决方案
让你的 initstate 像这样
@override
void initState() {
super.initState();
questionsList=[""];
_languageA=true;
loadData(); // seting for some dropdown menu
_getLanguageChoise(); //geting from sharepref bool value
_getData(arabic: _languageArabic).then((value) { //async db call load List ext...
setState(() {});
});
}