如何从列表视图中删除某些内容并重新加载页面?颤振网络
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);
);
【讨论】:
以上是关于如何从列表视图中删除某些内容并重新加载页面?颤振网络的主要内容,如果未能解决你的问题,请参考以下文章
如何使列表视图构建器在颤振中成为可重新排序的列表视图(优先任务应用程序(待办事项应用程序))