Flutter跳转StatefulWidget作为第二页时required参数缺失如何解决?
问题根因
你的报错和组件是否为StatefulWidget类型无关,核心是Records类的构造函数明确声明了required List<String> records必填参数,你跳转创建Records实例时没有传入对应参数,才触发该错误。
报错原文:The named parameter 'records' is required, but there's no corresponding argument.
解决方案
按以下步骤修改即可:
- 在
_HomePageState类中定义存储录音记录的列表,用于保存a页面(Recorder)生成的录音数据:
class _HomePageState extends State<HomePage> { // 新增:存储所有录音记录 List<String> _records = []; // 原有其他代码不变 }
- 首页加载
Recorder组件时,正确传入save回调,录音完成后更新本地记录列表:
// 放在Scaffold的body属性位置 body: Recorder( save: (String newRecord) { setState(() { _records.add(newRecord); }); } ),
- 修改跳转逻辑,将本地维护的
_records列表传给Records组件:
InkWell( child: Icon(Icons.mic), onTap: () { Navigator.push( context, MaterialPageRoute(builder: (context) => Records(records: _records)) ); }, )
如果只是临时测试跳转逻辑,也可以先传入空列表验证:Records(records: [])。
内容的提问来源于stack exchange,提问作者lele
相关产品推荐
相关产品推荐

