参数类型“List<dynamic>”不能分配给参数类型“List<Widget>”。我究竟做错了啥?小飘飘在这里

Posted

技术标签:

【中文标题】参数类型“List<dynamic>”不能分配给参数类型“List<Widget>”。我究竟做错了啥?小飘飘在这里【英文标题】:The argument type 'List<dynamic>' can't be assigned to the parameter type 'List<Widget>'. What am I doing wrong? Baby Flutterer Here参数类型“List<dynamic>”不能分配给参数类型“List<Widget>”。我究竟做错了什么?小飘飘在这里 【发布时间】:2022-01-04 07:08:30 【问题描述】:

我正在尝试创建User 类型的列表,如果该列表不为空,请提供列表中的下一个用户。我已经阅读了尽可能多的 Flutter 文档,但我不知所措。

class _SwipePageState extends State<SwipePage> implements PreferredSizeWidget 
  getUsers() async 
    Box box = await Hive.openBox('usersBox');
    swipableUsers = box.values.toList();
  

  List swipableUsers = <User>[];
  @override
  Widget build(BuildContext context) => Scaffold(
        appBar: PreferredSize(
          preferredSize: const Size.fromHeight(100),
          child: Container(color: Colors.transparent),
        ),
        body: Padding(
          padding: const EdgeInsets.all(8),
          child: Column(
            children: [
              swipableUsers.isEmpty
                  ? const Text('No more users')
                  : Stack(children: swipableUsers.map(buildUser).toList()),
              Expanded(child: Container()),
              const BottomButtonsWidget()
            ],
          ),
        ),
      );

  Widget buildUser(User currentUser) 
    int userIndex = swipableUsers.indexOf(currentUser);
    bool isUserInFocus = userIndex == swipableUsers.length - 1;
    //Do other stuff with currentUser

错误在: Stack(children: swipableUsers.map(buildUser).toList()),,错误是这个问题的标题,The argument type 'List&lt;dynamic&gt;' can't be assigned to the parameter type 'List&lt;Widget&gt;'

有没有机会拯救我的小应用程序,还是我纠结的太多以至于没有希望了?提前感谢您的回答:)

【问题讨论】:

列出swipableUsers = [];这是用户数据类型列表,你想在这里放置小部件列表尝试进行更改 【参考方案1】:

您需要使用 swipableUsers 变量生成一个小部件列表,但您将用户列表返回给 Stack 的 children 属性。试试这个:

Stack(children: List.generate(swipableUsers.length,(index)=>buildUser(swipableUsers[index])))

【讨论】:

以上是关于参数类型“List<dynamic>”不能分配给参数类型“List<Widget>”。我究竟做错了啥?小飘飘在这里的主要内容,如果未能解决你的问题,请参考以下文章

颤振无法分配参数类型'List<dynamic>'

错误:无法将参数类型“Null Function(DateTime, List<dynamic>)”分配给参数

颤振错误:参数类型“列表<动态>?”不能分配给参数类型“列表<动态>”

Flutter 类型“Future<List<dynamic>>”不是类型转换中“List<dynamic>”类型的子类型

未处理的异常:类型 'List<dynamic>' 不是颤振中类型 'Map<dynamic, dynamic>' 的子类型

_TypeError(类型 'List<dynamic>' 不是类型 'Map<String, dynamic> 的子类型