Flutter 关于在颤振中使用FutureBuilder,我有一个问题
关于在颤振中使用FutureBuilder,我有一个问题 使用FutureBuilder,页面将不断重建 我省略了写这个问题的详细代码。如果您想查看其他代码,请留下评论 要阻止这一切,我能做什么Flutter 关于在颤振中使用FutureBuilder,我有一个问题,flutter,dart,flutter-futurebuilder,Flutter,Dart,Flutter Futurebuilder,关于在颤振中使用FutureBuilder,我有一个问题 使用FutureBuilder,页面将不断重建 我省略了写这个问题的详细代码。如果您想查看其他代码,请留下评论 要阻止这一切,我能做什么 Future<bool> initLikes() async { var list = await ApiProvider().post('/RoomSalesInfo/Select/Like', jsonEncode( { "userI
Future<bool> initLikes() async {
var list = await ApiProvider().post('/RoomSalesInfo/Select/Like', jsonEncode(
{
"userID" : GlobalProfile.loggedInUser.userID,
}
));
return true;
} else {
return false;
}
}
//This is the Code that I use in Widget build
FutureBuilder(
future: initLikes(),
builder: (BuildContext context, AsyncSnapshot snapshot) {
//해당 부분은 data를 아직 받아 오지 못했을때 실행되는 부분을 의미한다.
if (snapshot.hasData == false) {
return SizedBox();
}
//error가 발생하게 될 경우 반환하게 되는 부분
// 데이터를 정상적으로 받아오게 되면 다음 부분을 실행하게 되는 것이다.
else {
return Expanded(
child: ListView.builder(
physics: ClampingScrollPhysics(),
shrinkWrap: true,
scrollDirection: Axis.vertical,
controller: _scrollController,
itemCount: GlobalProfile.listForMe.length +1,
itemBuilder: (BuildContext context, int index) {
if(index == GlobalProfile.listForMe.length){
return CupertinoActivityIndicator();
}
else
return Column();
}
),
);
}
})
Future initLikes()异步{
var list=wait ApiProvider().post('/RoomSalesInfo/Select/Like',jsonEncode(
{
“userID”:GlobalProfile.loggedInUser.userID,
}
));
返回true;
}否则{
返回false;
}
}
//这是我在小部件构建中使用的代码
未来建设者(
future:initLikes(),
生成器:(BuildContext上下文,异步快照){
//해당 부분은 数据를 아직 받아 오지 못했을때 실행되는 부분을 의미한다.
如果(snapshot.hasData==false){
返回SizedBox();
}
//错误가 발생하게 될 경우 반환하게 되는 부분
// 데이터를 정상적으로 받아오게 되면 다음 부분을 실행하게 되는 것이다.
否则{
扩大回报(
子项:ListView.builder(
物理:ClampingScrollPhysics(),
收缩膜:对,
滚动方向:轴垂直,
控制器:\ u滚动控制器,
itemCount:GlobalProfile.listForMe.length+1,
itemBuilder:(构建上下文,int索引){
if(index==GlobalProfile.listForMe.length){
返回CupertinoActivityIndicator();
}
其他的
返回列();
}
),
);
}
})
不要重新计算这个。新调用将覆盖旧调用。相反,使用initState()将其计算一次,并将其转换为从“future:…”引用的变量
不要重新计算这个。新调用将覆盖旧调用。相反,使用initState()将其计算一次,然后将其转换为从“future:…”引用的变量
future: initLikes(),