You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter如何判断JSON中存在指定值以控制Container的显隐

Flutter 条件显示指定组件实现方案

实现逻辑

你只需要先校验kindController.kindDataList中是否存在market对应的数据,再通过Flutter的条件渲染语法控制组件显隐即可。

完整实现代码

import 'package:flutter/material.dart';

// 首先在你的组件build方法内先做数据存在性判断
@override
Widget build(BuildContext context) {
  // 校验逻辑,根据你的Kinds模型结构二选一即可
  // 方案1:如果kindDataList每条数据对应一个分类,带有type字段标记分类类型
  bool hasMarket = kindController.kindDataList.any((item) => item.type == 'market');
  // 方案2:如果kindDataList单条数据包含三类数据的集合
  // bool hasMarket = kindController.kindDataList.first.markets.isNotEmpty;

  return Scaffold(
    body: Column(
      children: [
        // 其他已有的组件
        if (hasMarket)
        // 你需要显示的market对应组件
        Container(
          child: Padding(
            padding: EdgeInsets.symmetric(
                horizontal: Dimensions.PADDING_SIZE_SMALL),
            child: IntrinsicHeight(
              child: Row(
                crossAxisAlignment: CrossAxisAlignment.stretch,
                children: [
                  Expanded(
                    child: Column(children: [
                      
                      Padding(
                        padding: EdgeInsets.symmetric(vertical: Dimensions
                            .PADDING_SIZE_SMALL,
                            horizontal: Dimensions.PADDING_SIZE_SMALL),
                        child: HomeFlatBtn(
                          image: 'market', height: 150, currentTab: 1,),
                      ),

                      Padding(
                        padding: EdgeInsets.symmetric(horizontal: Dimensions
                            .PADDING_SIZE_SMALL),

                        child: HomeFlatBtn(
                          image: 'grocery', height: 150, currentTab: 1,),
                      ),
                    ]
                    ),
                  ),
                  Expanded(child: HomeFlatBtn(image: 'food',
                      height: 0,
                      currentTab: 1),
                  ),
                ],
              ),
            ),
          ),
        ),
        // 其他后续组件
      ],
    ),
  );
}

说明

如果你的Kinds模型字段命名和示例不同,只需要调整hasMarket的判断逻辑匹配你的实际字段即可,不需要修改组件渲染部分的代码。

内容的提问来源于stack exchange,提问作者Ismail Muhammad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 18:45:03