如何从列表视图中删除某些内容并重新加载页面?颤振网络

Posted

技术标签:

【中文标题】如何从列表视图中删除某些内容并重新加载页面?颤振网络【英文标题】:How do I delete something from listview and reload the page? Flutter Web 【发布时间】:2021-06-26 15:05:57 【问题描述】:

您好,我正在尝试实现删除请求。我成功地做到了,但是它没有刷新页面。用户必须手动刷新页面才能看到更改。我尝试使用 setState(()) 但没有奏效。

class TodoList extends StatefulWidget 
  final List<dynamic> todos;
  final TodoService todoService;
  TodoList(Key key, this.todos, this.todoService) : super(key: key);

  @override
  _TodoListState createState() => _TodoListState();


class _TodoListState extends State<TodoList> 
  @override
  Widget build(BuildContext context) 
    return ListView.builder(
      itemCount: widget.todos.length,
      itemBuilder: (context, index) 
        return Column(
          children: <Widget>[
            Card(
              child: ListTile(
                title: Text(widget.todos[index].description),
                trailing: Wrap(
                  children: <Widget>[
                    IconButton(
                      icon: Icon(Icons.edit),
                      onPressed: () ,
                      color: Colors.blue,
                    ),
                    SizedBox(width: 20),
                    IconButton(
                      icon: Icon(Icons.delete),
                      onPressed: () 
                        setState(() 
                          widget.todoService
                              .deleteTodo(id: widget.todos[index].id);
                        );
                      ,
                      color: Colors.red,
                    ),
                  ],
                ),
              ),
            ),
          ],
        );
      ,
    );
  

【问题讨论】:

【参考方案1】:

您还必须在小部件列表中删除:

    onPressed: () 
                            setState(() 
                              widget.todoService
                                  .deleteTodo(id: widget.todos[index].id);
                              widget.todos.removeWhere((item) => item.id == widget.todos[index].id);


                            );

【讨论】:

以上是关于如何从列表视图中删除某些内容并重新加载页面?颤振网络的主要内容,如果未能解决你的问题,请参考以下文章

在 Swift 中重新加载/更新视图

如何在颤动中从列表中删除项目时重新加载列表

如何使列表视图构建器在颤振中成为可重新排序的列表视图(优先任务应用程序(待办事项应用程序))

如何将 json 从 php 附加到列表视图?

如何通过单击适配器类中代码的项目中的删除按钮来删除列表视图中的项目后重新加载片段?

如何在颤振/飞镖中缓存列表视图构建器?