Flutter - 如何在 ListView 构建器中列出 forEach() 值?

rei*_*ako 3 dart flutter

您好,我正在尝试将数据从 JSON 列出到 Listview Builder 。但 Flutter 给了我这个错误:Column's children must not contain any null values, but a null value was found at index 0

我尝试在列表视图中像这样映射每个

alo[Index]['rewards'].forEach((k, v) {
                      Text(v['name']);
                    }),
Run Code Online (Sandbox Code Playgroud)

这是我的完整代码:

            shrinkWrap: true,
            itemCount: alo.length,
            itemBuilder: (BuildContext ctxt, int Index) {
              return Card(
                  child: Padding(
                padding: const EdgeInsets.all(15.0),
                child: Column(
                  children: <Widget>[
                    alo[Index]['rewards'].forEach((k, v) {
                      Text(v['name']);
                    }),


                  ],
                ),
              ));
            });
Run Code Online (Sandbox Code Playgroud)

有什么办法解决这个问题吗?谢谢你!

Pab*_*era 7

问题是forEach()不会返回任何内容,您可以使用map()它,如下所示:

children: alo[Index]['rewards'].values.map<Widget>((v) => Text(v['name'])).toList()
Run Code Online (Sandbox Code Playgroud)

如果你想添加更多小部件,你可以这样做:

Column(
  children: <Widget>[
    Column(
      children: alo[Index]['rewards']
          .values
          .map<Widget>((v) => Text(v['name']))
          .toList(),
    ),
    Text('Other widget'),
  ],
)
Run Code Online (Sandbox Code Playgroud)