Flutter 颤振列表视图:小部件不';t更新

Flutter 颤振列表视图:小部件不';t更新,flutter,flutter-listview,statefulwidget,flutter-state,Flutter,Flutter Listview,Statefulwidget,Flutter State,我有一个listview,它在StatefulWidget中显示了一些项目: ListView.separated( shrinkWrap: true, itemBuilder: (context, index) { return RowItem( item: rowsList[index], index: index, ); }, separato

我有一个listview,它在StatefulWidget中显示了一些项目:

  ListView.separated(
      shrinkWrap: true,
      itemBuilder: (context, index) {
          return RowItem(
              item: rowsList[index],
              index: index,
          );
      },
      separatorBuilder: (context, index) {
          return Divider(
              height: 20,
              color: Colors.transparent,
          );
      },
      itemCount: rowsList.length,
  ),
RowItem也是一个StatefulWidget

当我从rowsList添加和删除项目时,所有这些都可以正常工作,但当我尝试更新现有的rowsList项目时,我会遇到问题。这是我的更新功能:

  void updateRow(int rowIndex, MyItem item) {
    setState(() {
       rowsList[rowIndex] = item;
    });
  }
但我仍然可以在listview中看到更新项的旧值。(MyItem是扩展Equalable的对象)


怎么了?

试试
RowItem
小部件试试这个

var项目

 @override
   void initState() {
    item = widget.item;
      super.initState();
    }
@override
  void didUpdateWidget(covariant SleepDeckStepper oldWidget) {
    item = widget.item;
    super.didUpdateWidget(oldWidget);
  }

问题是
item
参数未更新,无法重新发布我的评论。您应该在每个
行项目上使用一个


来自Emily Fortuna的更多信息。

尝试使用。谢谢,我只是错过了设置RowItem的键--这能解决您的问题吗?如果是这样的话,我将把我的评论作为一个真实的答案重新发布。当然,重新发布答案,我会接受它。