Flutter调用_tile函数报错:位置参数过多,该如何解决?
错误原因及修复方案
错误根源
你定义的_tile函数,第一个参数是位置参数BuildContext context,后面的title、subtitle、icon都是命名参数(必须带参数名传递)。但调用时你写成了:
_tile(data[index].ssid, data[index].auth, icon: Icons.wifi);
这里把ssid和auth当成位置参数传递,可函数仅接受1个位置参数(context),因此触发了"参数过多"的报错。
修复步骤
修正
_tile调用方式:
从itemBuilder中拿到context,先传递这个位置参数,再通过命名参数传入title、subtitle、icon:return _tile(context, title: data[index].ssid, subtitle: data[index].auth, icon: Icons.wifi);完善参数类型(可选但推荐):
给_jobsListView的参数添加明确类型,避免类型警告:ListView _jobsListView(List<Job> data) { ... }
修复后的关键代码片段
ListView _jobsListView(List<Job> data) { return ListView.builder( itemCount: data.length, itemBuilder: (context, index) { return _tile( context, title: data[index].ssid, subtitle: data[index].auth, icon: Icons.wifi, ); }); }
修改后参数传递符合函数定义要求,ListTile可正常构建,点击跳转逻辑也能正常工作(_tile内的Navigator.pushNamed已正确使用传入的context)。
内容的提问来源于stack exchange,提问作者Alejandro Carrasquero
相关产品推荐
相关产品推荐

