Listview 插入新记录后如何重新加载列表?
我有一个listView,它是使用Listview 插入新记录后如何重新加载列表?,listview,flutter,dart,Listview,Flutter,Dart,我有一个listView,它是使用Future Builder创建的所有数据都是从服务器获取的,在我添加了一条新记录后,一条记录成功添加到数据库中,并导航到listView页,但我的列表没有刷新,我如何刷新我的列表 FutureBuilder<List<NewAddressModel>>( future: myAddressList, builder: (context, snapshot) { print(snapshot); if (snaps
Future Builder创建的
所有数据都是从服务器获取的,在我添加了一条新记录后,一条记录成功添加到数据库中,并导航到listView页,但我的列表没有刷新,我如何刷新我的列表
FutureBuilder<List<NewAddressModel>>(
future: myAddressList,
builder: (context, snapshot) {
print(snapshot);
if (snapshot.hasData)
return addressList(snapshot.data);
else if (snapshot.hasError)
return _buildErrorPage(snapshot.error);
else
return _buildLoadingPage();
},
),
这是因为当你从一个页面导航到另一个页面时,你应该添加whencomplete方法,如@Abjox所说,因此,当您导航回Listview页面时,将调用build方法,futurebuilder将获取数据并在您插入数据库的列表中显示数据。这是因为当您从一个页面导航到另一个页面时,您应该在推送中添加whencomplete方法,如@Abjox所说,因此,当您导航回Listview页面时,将调用build方法,futurebuilder将获取数据并在您插入数据库的列表中显示数据。使用Navigator.push()。当完成((){setState(){}})时,如@Abjox所建议的那样
void navigateToAddAddress() async {
Navigator.of(context).push
(new MaterialPageRoute(builder: (context) => AddAddress()))
.whenComplete((){setState(() {
// use here that method by which you load data into listView
});});
}
按照@Abjox的建议,在完成((){setState(){}})时使用Navigator.push()
void navigateToAddAddress() async {
Navigator.of(context).push
(new MaterialPageRoute(builder: (context) => AddAddress()))
.whenComplete((){setState(() {
// use here that method by which you load data into listView
});});
}
只需将Future
函数调用重新分配给myAddressList
,然后调用setState
Future<void> navigateToAddAddress() async {
await Navigator.push(
context,
MaterialPageRoute(
builder: (context) => AddAddress(),
),
);
setState((){
myAddressList = _fetchAddressListFromServer();
});
}
Future navigateToAddAddress()异步{
等待导航器(
上下文
材料路线(
生成器:(上下文)=>AddAddress(),
),
);
设置状态(){
myAddressList=_fetchAddressListFromServer();
});
}
只需将Future
函数调用重新分配给myAddressList
,然后调用setState
Future<void> navigateToAddAddress() async {
await Navigator.push(
context,
MaterialPageRoute(
builder: (context) => AddAddress(),
),
);
setState((){
myAddressList = _fetchAddressListFromServer();
});
}
Future navigateToAddAddress()异步{
等待导航器(
上下文
材料路线(
生成器:(上下文)=>AddAddress(),
),
);
设置状态(){
myAddressList=_fetchAddressListFromServer();
});
}
您是否尝试使用Navigator.push()。完成(({setState(){}}})后@Abjox您能告诉我删除的相同情况吗?如果我删除一条记录,该记录会被删除,但列表不会刷新。我使用@override void didChangeDependencies(){super.didChangeDependencies();_myList=hitApiGetData();}解决了这个问题这是正确的方法吗?你是否尝试使用Navigator.push().whenComplete((){setState(){}})?@Abjox你能告诉我同样的删除方法吗?如果我删除一条记录,该记录会被删除,但列表不会刷新。我使用@override void didChangeDependencies(){super.didChangeDependencies();\u myList=hitApiGetData()}解决了这个问题这是正确的方法吗?如果我删除了一条记录,你能告诉我删除的相同情况吗?该记录被删除,但列表没有刷新?我使用@override void didChangeDependencies(){super.didChangeDependencies();_myList=hitApiGetData();}解决了这个问题这是正确的方法吗?你应该查看他的帖子,仅供参考:。如果可以,那就太好了。在这个查询中,请再给我一个帮助。如果我删除一条记录,你能告诉我同样的事情吗?如果我删除了一条记录,该记录被删除了,但列表没有刷新。我用@override void didChangeDependencies(){super.didChangeDependencies();_myList=hitApiGetData();}解决了这个问题这是正确的方法吗?你应该查看他的帖子,仅供参考:。如果可以的话,那就太好了。请在这个查询中再给我一个帮助嘿,你能在这个查询中帮我吗@Toyed我给你的问题添加了一个答案。你可以试着在这个问题上帮助我@Toyed我给你的问题添加了答案。你可以试试
Future<void> navigateToAddAddress() async {
await Navigator.push(
context,
MaterialPageRoute(
builder: (context) => AddAddress(),
),
);
setState((){
myAddressList = _fetchAddressListFromServer();
});
}