Listview 使用FutureBuilder在Flatter中显示存储在数据库中的项目列表

Listview 使用FutureBuilder在Flatter中显示存储在数据库中的项目列表,listview,flutter,dart,Listview,Flutter,Dart,这里的dishType是一个变量,用于存储要显示的Dish类型的项目, 它显示的是一个空列表 以下是我的FutureBuilder body: FutureBuilder<List>( future: dishes(), initialData: List(), builder: (context, snapshot){ return snapshot.hasData ? ListView.builder(

这里的
dishType
是一个变量,用于存储要显示的
Dish
类型的项目, 它显示的是一个空列表

以下是我的
FutureBuilder

 body: FutureBuilder<List>(
    future: dishes(),
    initialData: List(),
    builder: (context, snapshot){
      return snapshot.hasData
          ? ListView.builder(
              itemCount: snapshot.data.length,
              itemBuilder: (context, index){
                final item = snapshot.data[index];
                if (item.dishType == dishType) {
                    return ListTile(
                      title: Text("${item.dishName}"),
                      subtitle: Text(item.dishType),
                    );
                } else return null;
              },
      )
          : Center(
        child: CircularProgressIndicator(),
      );
    },
  ),
body:FutureBuilder(
未来:菜品(),
initialData:List(),
生成器:(上下文,快照){
返回snapshot.hasData
?ListView.builder(
itemCount:snapshot.data.length,
itemBuilder:(上下文,索引){
最终项目=快照。数据[索引];
如果(item.dishcype==dishcype){
返回列表块(
标题:文本(“${item.dishName}”),
字幕:文本(项目类型),
);
}否则返回null;
},
)
:中心(
子对象:CircularProgressIndicator(),
);
},
),
以下是在条件被移除后输出的屏幕截图


如果我删除If语句,它将正常工作,显示所有菜肴及其类型的列表。可能dishType具有不同的值,请放入打印语句并检查这两个值扫描添加这些打印值的屏幕截图/日志更改If语句,如:If(item.dishType.toUpperCase()==dishType.toUpperCase())让我们知道它是否有效,我们欢迎你。快乐编码!!!:)如果我删除If语句,它会正常工作,显示所有菜肴及其类型的列表。可能dishType有不同的值,放入print语句并检查这两个值可以添加这些打印值的屏幕截图/日志更改If语句,如:If(item.dishType.toUpperCase()==dishType.toUpperCase())让我们知道它是否有效,我们欢迎你。快乐编码!!!:)