首页 > 解决方案 > 如何使用三元条件-flutter

问题描述

所以每个用户都有不同的价格分配,有些人有超过 1 个价格我只想在价格属于用户时显示,那么它应该只显示该用户下的价格,而不是显示所有用户下的所有价格,如果价格不显示则显示空白t 属于用户。

截屏:

//假设levelsData已经存储了jsonArray数据

jsonArray 数据:

{
    "price":  1540,
    "user_id": "user2"
}

所以我希望只有当userId等于element[user_id]时才能在磁贴中显示,因为之前它显示了所有内容,所以使用这段代码我能够根据该条件进行过滤,但如果它不符合要求,它改为显示一个空白空间。我不知道如何只显示没有显示空白的信息

var levelsData = [];


class StuffInTiles extends StatelessWidget {
  final String userId;
  final int price;

  StuffInTiles(this.userId, this.price);

  @override
  Widget build(BuildContext context) {
    List<dynamic> _getChildren() {
      List<Widget> children = [];
      levelsData.forEach((element) {
        children.add(
          ListTile(
            dense: true,
            title: Text(
                userId == element['user_id']
                    ? "@" + element['price'].toString()
                    : ""),
          ),
        );
      });
      return children;
    }

标签: jsonflutter

解决方案


如果您不想添加空 listTile,那么只需在将其添加到子列表之前检查条件。

levelsData.forEach((element) {
  if(userId == element['user_id']) {
    children.add(
      ListTile(
        dense: true,
        title: "@" + element['price'].toString()),
    );
  }
}

推荐阅读