【问题标题】:ReorderableListView throws error when using an extracted widget for itemBuilder?为 itemBuilder 使用提取的小部件时,ReorderableListView 会引发错误?
【发布时间】:2021-10-30 18:26:47
【问题描述】:

如果我在 ReorderableListView Builder 中使用提取的小部件,它会显示此错误 Every item of ReorderableListView must have a key.,但是当我将它用作构建器中的方法时,它可以正常工作。

ReorderableListView.builder(
      itemCount: userList.length,
      itemBuilder: (context, index) {
        final user = userList[index];

        return WidgetList(user: user);        //Not Working, throws the error
      }, 
      onReorder: (int oldIndex, int newIndex) {
            setState(() {
              final index = newIndex > oldIndex ? newIndex - 1 : newIndex;
              final User user = userList.removeAt(index);
              userList.insert(index, user);
            });},
        );

//if I use this, it works fine
Widget MethodList(User user) => ListTile(  
    key: ValueKey(user),
    title: Text(user.firstName),
  );

WidgetList - 如果我使用它,它就不起作用。

class WidgetList extends StatelessWidget {
  final User user;
  const WidgetList({Key? key, required this.user}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return ListTile(
      key: ValueKey(user),
      title: Text(user.firstName),
    );
  }
}

编辑:WidgetList(用户)-> WidgetList(用户:用户)

【问题讨论】:

    标签: flutter flutter-listview reorderable-list


    【解决方案1】:

    在 WidgetList 中,您使用了 name 参数,但您没有传递参数,这就是您收到错误的原因。

    //here key is optional 
    return WidgetList(key: ValueKey(user), user: user)
    //or
    return WidgetList(user: user)
    

    或者,与容器绑定并传递值键。

    return Container(
      key: ValueKey(user),
      child: WidgetList(user: user),
    );
    

    【讨论】:

    • 我的错,它应该是返回值中的 MethodList(user) 而不是 WidgetList(user)。但是我有像这个'WidgetList(user:user)'这样的参数,它不起作用。尝试了你的其他建议,不幸的是它仍然没有用。
    • final user = userList[index]; 删除这一行只需通过return WidgetList(user: userList[index])
    猜你喜欢
    • 2020-05-23
    • 2019-06-07
    • 1970-01-01
    • 1970-01-01
    • 2018-08-10
    • 1970-01-01
    • 1970-01-01
    • 2021-02-13
    • 1970-01-01
    相关资源
    最近更新 更多