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

Flutter使用Dart对接Cloud Firestore报位置参数缺失错误如何解决?

Flutter/Dart 「1 positional argument(s) expected, but 0 found.」报错修复

报错根因

该报错由构造函数的参数定义规则和调用时的传参方式不匹配导致:
你定义UserTile构造函数时,Sport类型的sport参数属于位置参数(未被大括号包裹),调用时必须直接传值,不能加参数名前缀;但你在ListView.builder中调用UserTile时使用了UserTile(sport: users[index])的命名参数传参形式,不符合参数规则。
另外你构造函数中定义的{users}可选命名参数全程没有被使用,属于冗余代码,建议清理。

修复方案(二选一即可)

方案1:调整调用方式,匹配位置参数规则

直接修改ListView.builder中的调用代码,去掉参数名前缀sport::

return ListView.builder(
  itemCount: users.length,
  itemBuilder: (context, index){
    return UserTile(users[index]);
  },
);

方案2:调整构造函数定义,改为命名参数形式

如果希望调用时可以明确指定参数名提升可读性,就把sport参数调整为必填命名参数:

class UserTile extends StatelessWidget {
  final Sport sport;
  // 把sport放入大括号内,空安全场景下必填参数加required修饰,可按需添加super.key
  const UserTile({required this.sport});

  @override
  Widget build(BuildContext context) {
    return Padding(
      padding: const EdgeInsets.only(top: 8.0),
      child: Card(
        margin: const EdgeInsets.fromLTRB(20.0, 6.0, 20.0, 0.0),
        child: ListTile(
          leading: CircleAvatar(
            radius: 25.0,
            backgroundColor: Colors.brown[100],
          ),
          title: Text(sport.name),
          subtitle: Text('User plays ${sport.sport}'),
        ),
      ),
    );
  }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 16:24:04