列子项不能返回 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;
}

最新更新