【问题标题】:How to use a String in a FutureBuilder as Future<String> (Flutter - Dart)如何在 FutureBuilder 中使用字符串作为 Future<String> (Flutter - Dart)
【发布时间】:2021-04-28 23:52:59
【问题描述】:

我想在 FutureBuilder 的未来值中使用字符串。但是如果这个字符串是空的,那么我想使用任何 RESTful API 中的字符串。

这就是为什么我想在 FutureBuilder 中使用字符串作为 Future

那么,我该怎么做,有可能吗?

【问题讨论】:

标签: flutter dart flutter-futurebuilder


【解决方案1】:

您可以跳过FutureBuilder并使用initState并加载List,如下所示:

   List<String> webServiceList ;
  
  List<String> localList = [ 'Foo' ,'Foo' , 'Foo' , 'Foo'] ;

  @override
  void initState() {
    super.initState();
    loadData();
  }
  @override
  Widget build(BuildContext context) {
    return Scaffold(

      body: webServiceList != null ? ListView.builder(
          itemCount:webServiceList.length,
          itemBuilder: (_ , index){
            return Text(webServiceList[index]);
            
          }) : ListView.builder(
          itemCount:localList.length,
          itemBuilder: (_ , index){
            return Text(localList[index]);

          }),

    );
  }

  void loadData() async{

    webServiceList = await ///Get data for web services API ; 

    setState(() {
      
    });
    
  }

【讨论】:

  • 我认为这不是一个好主意。因为,在您的代码中,我必须编写两次 ListView,这对大 ListView 不利。相反,我想在 FutureBuilder 中编写一次 ListView 并将字符串作为未来值,如果字符串为空,那么它将获取 api。
猜你喜欢
  • 2020-05-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-22
  • 2021-01-30
  • 2019-06-29
  • 2020-11-05
相关资源
最近更新 更多