Columns子代不能返回null,但是返回将停止循环

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Columns子代不能返回null,但是返回将停止循环相关的知识,希望对你有一定的参考价值。

我正在尝试遍历列表,并为列表中的每个“步骤”暂时生成一个小部件(文本)。

但是,在打印时我得到了与预期完全一样的错误Column's children must not contain any null values, but a null value was found at index 0

据我了解,因为我什么也不退货。但是,如果我确实返回了某些内容,则循环会停止,因此我只是第一步。

recipeMethodList(recipeMethod) 
for (var step in recipeMethod) 
  stepNumber = stepNumber + 1;
  Row(
    children: <Widget>[
      Text('$stepNumber. $step'),
    ],
  );
  print('$stepNumber. $step');

我称呼它为:

Column(
              mainAxisAlignment: MainAxisAlignment.center,
              children: <Widget>[recipeMethodList(recipeMethod)],
            ),
答案

您可以尝试更改功能,例如

List<Widget> recipeMethodList(List recipeMethod) 
  int stepNumber=0;
  return recipeMethod.map((step) 
    stepNumber = stepNumber + 1;
    return Text('$stepNumber. $step');
  ).toList();

另一答案

我通过建立新列表解决了这个问题。其中包含我选择的小部件。然后将该列表返回给构建器。

    methodCard(recipeMethod, context) 
    List<Padding> methodList = [];
    for (var step in recipeMethod) 
      stepNumber++;
      methodList.add(
        Padding(
          padding: const EdgeInsets.all(8.0),
          child: Container(
            decoration: BoxDecoration(
                borderRadius: BorderRadius.circular(15), color: Colors.white),
            padding: EdgeInsets.symmetric(horizontal: 10.0),
            width: MediaQuery.of(context).size.width,
            child: Column(
              mainAxisAlignment: MainAxisAlignment.center,
              crossAxisAlignment: CrossAxisAlignment.start,
              children: <Widget>[
                Padding(
                  padding: const EdgeInsets.symmetric(horizontal: 12.0),
                  child: Text(
                    '$stepNumber. $step',
                    style: TextStyle(
                        fontSize: 16.0,
                        fontFamily: 'NotoSans',
                        color: Colors.black),
                  ),
                ),
              ],
            ),
          ),
        ),
      );
    
    return methodList;
  

以上是关于Columns子代不能返回null,但是返回将停止循环的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server 复制本地订阅属性返回“无法将值‘null’应用于属性 ServerInstance:值不能为空。”

JPA 与 OSGi 示例在 serviceReference 中返回 null

什么时候可以返回 NULL 作为 C 函数的返回值?

mybatis-plus getObj方法返回null

mybatis-plus getObj方法返回null

Gatsby graphiQL - 不能为不可为空的字段 ImageSharpFluid.src 返回 null