所以我正在创建这个应用程序,其中包含一个遵循类似结构的帖子列表。
FutureBuilder(
future: getPosts() <-Custom function that returns data from firestore
builder:(context,snapshot){
return ListView.builder(
builder:(context,index){
Post v=_dataToPost(snapshot.data()[index]) <- Custom function that transforms the data into a post
bool userLike=v.like;
return StatefulBuilder(
builder(context,setSheet)=>
IconButton(
onPressed:(){
_likePost <-Custom function that updates firestore to like a post
setSheet({
userLike=!userLike
})
})
)}
)}
)
首先,有人告诉我,这不是您正确使用 statefulbuilder 的方式,但我不想每次有人喜欢/不喜欢帖子时都调用 setState。但是我仍然需要在我的用户按下它时立即改变喜欢的图标(只是等待 _likePost 函数运行需要太长时间)。
我还注意到,当我实际上调用 setState(以获取更多帖子或 smt)时,like 按钮会恢复到之前的状态(在有人按下它之前)一瞬间,然后才赶上 Firestore 数据。这会使按钮闪烁一秒钟。
有什么想法吗?任何事情都值得赞赏我已经挠了好几天了......