簡體   English   中英

如何從 Future 傳遞變量<string>在 Flutter 中無效?</string>

[英]How can I pass variable from Future<String> to void in Flutter?

我正在使用 SharedPreferences 我做了一個簡單的保護程序和吸氣劑,但我想在使用 initState 打開應用程序時加載我的變量

data是一個帶有占位符的字符串

保護程序

Future<String> saveNamePreference(String name) async {
  SharedPreferences prefs = await SharedPreferences.getInstance();
  prefs.setString('name', name);

  print(name);
  return prefs.getString(name);
}

吸氣劑

Future<String> getNamePreference() async {
  SharedPreferences prefs = await SharedPreferences.getInstance();
  final name = prefs.getString('name');

  return name.toString();
}

無效初始化狀態

  @override
  void initState() async {
    super.initState();
    await getNamePreference();
    setState(() {
      data = name;
    });
  }

您必須使用 then 方法來執行此操作,因為 initstate 在數據從異步方法到達之前完成了精確計算。

@override
  void initState() {
    super.initState();
    getNamePreference().then((name){
       setState(() {
           data = name;
       });
    }); 
  }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM