Flutter If语句在flatter的列表中找不到值

Flutter If语句在flatter的列表中找不到值,flutter,Flutter,我使用这个if语句: if(category.id!='0') { return CategoryWidget(category: category); } 当我使用此命令向列表添加项目时,为什么它不返回true并返回小部件 _categories.insert(0, categoryAll); 使用此命令在列表中添加项目时,一切正常。但是由于对列表进行排序,我需要插入以将添加的项放在开头 _categories.add(categoryAll); 使用insert命令: 使用“添加

我使用这个if语句:

if(category.id!='0') {
  return CategoryWidget(category: category);
}
当我使用此命令向列表添加项目时,为什么它不返回true并返回小部件

_categories.insert(0, categoryAll);
使用此命令在列表中添加项目时,一切正常。但是由于对列表进行排序,我需要插入以将添加的项放在开头

_categories.add(categoryAll);
使用insert命令:

使用“添加”命令:


代码中的主要问题不是使用
插入
添加
,而是不在ListView生成器中返回小部件:

ListView.separated(
  itemCount: categories.length,
  ...
  itemBuilder: (context, index) {
    final category = categories[index];
    if(category.id!='0') {
      return CategoryWidget(category: category);
    }
    // Error here, you didn't return any widget if category.id == '0'
  },
)
您需要将代码修复为以下内容:

ListView.separated(
  itemCount: categories.length,
  ...
  itemBuilder: (context, index) {
    final category = categories[index];
    if(category.id =='0') {
      // return your default widget or specific widget here
      return DefaultCategoryWidget();
    } else {
      return CategoryWidget(category: category);
    }
    
  },
)

谢谢你的回复。我把我的代码改成了这个,现在可以用了

if(category.id!='0') {
  return CategoryWidget(category: category);
  } else {
  return Container();
}

假设您必须插入id为0的项使用if(category.id='0'){return CategoryWidget(category:category);}您的意思是什么?添加或插入项以两种方式工作。当我插入而不是添加时,只有if语句不起作用。另请参见我贴在帖子上的图片。