繁体   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