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:值不能为空。”