繁体   English   中英

如何在小部件中调用动态方法 - flutter

[英]How to call dynamic method in widget - flutter

我是 flutter 的新手。 我正在使用 SharedPreferences 来存储数据。 我有这个动态 function:

 _loadFromLocal(index) async {
    var data = await getFromLocal();
    return data?.elementAt(index);
  }

 Future<List<String>?> getFromLocal() async {
    SharedPreferences pref = await SharedPreferences.getInstance();
    return pref.getStringList('data_prices');
  }

我需要在 Widget 构建中调用这个动态函数 _loadFromLocal

    class _ScanState extends State<Scan> {
    @override
      Widget build(BuildContext context) {
           return
     Scaffold(
         child: Container(
        child:Text(
        _loadFromLocal(0),
        )),);
  }
  }

我怎样才能做到这一点

您不能像您提到的那样调用异步代码,而是应该在initState()中调用它,如下所示

class _ScanState extends State<Scan> {
  dynamic value;

  @override
  void initState() {
    super.initState();
    _loadFromLocal(0).then((data) {
      setState(() {
        value = data;
      });
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Container(
        child: Text(
          value ?? '',
        ),
      ),
    );
  }

  // omit the rest code
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM