Flutter开发报错:相关错误组件为Scaffold,移除后仍报错求助
排查并修复Flutter代码中的报错问题
以下是代码中存在的问题及对应修复方案:
- 多余的闭合括号:代码末尾多了一个冗余的
},直接删除即可解决语法层面的基础错误。 - 错误的国际化调用方式:
Text(...).tr()是错误写法,tr()方法需作用于字符串而非Text组件实例,应改为Text(buttonText.tr(), ...)。 - 不必要的SingleChildScrollView:leading区域的SingleChildScrollView包裹Column无实际作用,还可能引发布局溢出问题,建议直接移除。
- Stream类型明确化:为StreamBuilder指定泛型
<int>,同时确认widget.model.mtu是Stream<int>类型,避免类型不匹配报错。
修正后的完整代码
Widget build(BuildContext context) { return Scaffold( body: ExpansionTile( title: Column( mainAxisAlignment: MainAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start, children: <Widget>[ Text( widget.model.name, overflow: TextOverflow.ellipsis, ), Text( widget.model.id.toString(), style: Theme.of(context).textTheme.caption, ) ], ), leading: Column( children: <Widget>[ StreamBuilder<int>( stream: widget.model.mtu, initialData: 0, builder: (c, snapshot) => ListTile( title: const Text('MTU Size'), subtitle: Text('${snapshot.data} bytes'), ), ), ], ), trailing: TextButton( onPressed: () { setState(() { buttonText = 'Connecting...'; }); widget.viewModel.establishConnectAndEnableNotify(widget.model); }, child: Text( buttonText.tr(), style: TextStyle(color: AppColors.blue), ), ), ), ); }
内容的提问来源于stack exchange,提问作者ASMA
相关产品推荐
相关产品推荐

