当前位置: 首页 > 知识库问答 >
问题:

应为“List

鄂和璧
2023-03-14

我试图在FutureBuilder中构建一个Project列表的下拉按钮,但是我收到了错误:

需要类型为List的值

我理解错误和它发生的地方,但我不明白为什么它不返回List

违规代码:

@override
  Widget build(BuildContext context) {
    return FutureBuilder(
      future: _futureProjects,
      builder: (BuildContext context, AsyncSnapshot snapshot) {
        if (snapshot.hasData) {
          return Column(children: [   
            Text('Project:'),
            new DropdownButton<Project>(
              value: _selectedProject,
              items: snapshot.data
                  .map((value) => new DropdownMenuItem<String>(
                        value: value.name,
                        child: Text(value.name),
                      ))
                  .toList(),
            ),
        } else {
          // ...

_futureProjects通过超文本传输协议填充:

Future<List<Project>> getJiraProjectsList() async {
    final response = await http.get(url + 'jira/projects');

    if (response.statusCode == 200) {
      var jsonData = jsonDecode(response.body);
      List<Project> projects = [];

      for(var data in jsonData){
        Project proj = Project.fromJson(data);
        projects.add(proj);
      }

      return projects;
    } else {
      throw Exception('Failed to load Projects List');
    }
  }

如果能帮我解决这个问题,我将不胜感激


共有1个答案

宋伯寅
2023-03-14

你可以使用AsyncSnapshot

FutureBuilder(
    future: _futureProjects,
    builder: (BuildContext context, AsyncSnapshot<List<Project>> snapshot) {
      if (snapshot.hasData) {
        return Column(children: [
          Text('Project:'),
          DropdownButton<Project>(
            value: snapshot.data[0],
            onChanged: (value) {},
            items: snapshot.data
                .map((project) => DropdownMenuItem<Project>(
                      value: project,
                      child: Text(project.name),
                    ))
                .toList(),
          ),
        ]);
      } else {
        return Text('... waiting');
      }
    })

 类似资料:
  • 问题内容: 我无法使用RestTemplate(org.springframework.web.client.RestTemplate)应对额外的弹簧行为,但没有成功。 我在代码下面的Hole应用程序中使用,并且始终会收到XML响应,该响应会解析并评估其结果。 但是无法确定为什么执行后服务器响应为JSON格式: 我已经在较低级别的RestTemplate上进行了调试,内容类型为XML,但是不知道为

  • 我已经读过许多关于同一错误的答案,但没有任何帮助。 提前道谢。

  • 我是JSON解析方面的新手,并试图解析以下JSON: 我只需要在“FeaturedMedia”中获得链接,所以我只包括了模型中的那些。我也从这里得到了一些关于错误的想法,但错误仍然存在。 任何关于如何解决这个问题的建议都会有很大的帮助。

  • 问题内容: 我在解析json数据时遇到此错误: 我找不到解决方案。我的json数据是: 我将图像转换为字节数组,如下所示: 我正在将图标从字节数组转换为Bitmap,如下所示: 我反序列化JSON响应的代码: 这是我的ProjectContainer类: 这是Project类: 如果您能帮助我解决这个问题,我将不胜感激。提前致谢 问题答案: 当您尝试解析该字段时会引发Exception ,因为在J

  • 问题内容: 我在解析JSON数据时遇到以下错误: 预期为begin_array,但在第1行第34列处为STRING 我找不到解决办法。我的JSON是以下内容: 这是我的PersonContent类: 以下是人员类别: 这是我反序列化前面提到的JSON数据的代码 我尝试了在这里找到的所有解决方案,但找不到相同的JSON。 问题答案: 错误出现在您收到的json中:您的类需要一个数组,因为 但是然后在