首页 > 解决方案 > 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 得到值......所以我需要按顺序做在构建方法之前有初始归档变量,以便用户可以看到..

标签: flutterdartsetstatesqfliteloaddata

解决方案


让你的 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(() {});
    });
  }

推荐阅读