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

Flutter BarcodeItemWidget调用results方法屏幕无输出问题求助

问题排查&修复方案

现有代码的问题点

  • 场景覆盖不全:results()方法仅对pdf_417、code_128两种条码格式做了处理,若扫描到其他格式的条码,会直接返回空字符串,页面自然无输出
  • 字符串拆分无安全校验:处理pdf_417格式时直接取split('%')后的索引1的元素,若条码内容不存在%字符会触发数组越界异常,导致Widget渲染失败
  • 粘贴的代码存在括号缺失问题:build方法、各容器组件的闭括号均未补全,若实际代码也是如此会直接触发语法错误

修复后的参考代码

class BarcodeItemWidget extends StatelessWidget {
  final BarcodeItem item; // 加final修饰不可变参数,符合StatelessWidget开发规范

  BarcodeItemWidget(this.item);

  String results(){
    String format = barcodeFormatEnumMap[item.barcodeFormat] ?? '';
    if(format == "pdf_417"){
      List<String> textParts = item.text.split('%');
      // 先判断拆分后的数组长度是否符合要求,避免越界报错
      if(textParts.length >= 2) {
        return "MVL code:${textParts[1]}";
      }
      return "MVL code:格式无效";
    }else if (format == "code_128"){
      return "item code:${item.text}";
    }
    // 其他格式返回兜底内容,避免空字符串无输出
    return "未知条码格式:$format";
  }

  @override
  Widget build(BuildContext context) {
    return Card(
      child: Column(
        crossAxisAlignment: CrossAxisAlignment.start,
        children: <Widget>[
          Row(
            children: [
              const Padding(
                padding: EdgeInsets.all(8.0),
                child: Text("Barcode Type:",
                  style: TextStyle(inherit: true, color: Colors.black),
                ),
              ),
              Padding(
                padding: const EdgeInsets.all(8.0),
                child: Text(
                  barcodeFormatEnumMap[item.barcodeFormat] ?? '未知格式',
                  style: const TextStyle(inherit: true, color: Colors.black),
                ),
              ),
            ],
          ),
          Row(
            children: [
              Padding(
                padding: const EdgeInsets.all(8.0),
                child: Text(
                  results()
                ),
              ),
            ],
          )
        ],
      ),
    );
  }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 02:27:03