Flutter 类型';未来<;空>';不是类型为';小部件';问题

Flutter 类型';未来<;空>';不是类型为';小部件';问题,flutter,dart,Flutter,Dart,我的代码有问题,我刚刚开始学习颤振,我需要解决这个问题 错误:“Future”类型不是“Widget”类型的子类型 这是我的密码 小部件构建(构建上下文){ 返回订单状态?Style1().showProgress():buildContent(); } Widget buildContent()=>ListView.builder( 填充:所有边缘设置(10.0), itemCount:orderModels.length, //忽略:不相关的\u类型\u相等\u检查 itemBuilder

我的代码有问题,我刚刚开始学习颤振,我需要解决这个问题

错误:“Future”类型不是“Widget”类型的子类型

这是我的密码

小部件构建(构建上下文){
返回订单状态?Style1().showProgress():buildContent();
}
Widget buildContent()=>ListView.builder(
填充:所有边缘设置(10.0),
itemCount:orderModels.length,
//忽略:不相关的\u类型\u相等\u检查
itemBuilder:(上下文,索引)=>riders[索引]==“无”
?processFoods[索引]=“用户订单”
?订单卡(全球模型、索引)
:Container()
:骑手[索引]=“$nameRider”
?加工食品[指数]=“烹饪”
?路线GPS(索引)
:Container()
:Container(),
);
未来路由GPS(int索引)异步{
等待未来。延迟(持续时间(秒:3));
MaterialPage路由=MaterialPage路由(
生成器:(上下文)=>导航GPS(
orderModel:orderModels[索引],
),
);
推送(上下文、路线);
}

}
存在多个问题。首先,
routeToGPS
返回null。你试着把它当作一个小部件。它应该返回如下小部件:

     Future<Widget> routeToGPS(int index) 
未来路线GPS(int索引)

但是您想更改其中的当前页面。它不会打开任何小部件。您需要返回一个带有onPress功能的按钮小部件,该小部件可将您导航到预期页面。

我现在找到了解决方案,谢谢@Akif的建议

只需检查initState中的条件,并在其上设置一些延迟,以便将服务器响应添加到变量

@覆盖
void initState(){
findOrder();
checkJobs();
super.initState();
}
计时器检查作业(){
返回计时器(持续时间(秒数:2),(){
int count=orderModels.length;
对于(变量i=0;iListView.builder(
填充:所有边缘设置(10.0),
itemCount:orderModels.length,
//忽略:不相关的\u类型\u相等\u检查
itemBuilder:(上下文,索引)=>riders[索引]==“无”
?processFoods[索引]=“用户订单”
?订单卡(全球模型、索引)
:Container()
//:骑手[索引]=“$nameRider”
//?processFoods[索引]=“烹饪”?容器():容器()
:Container(),
);
未来路线全球定位系统(国际索引){
MaterialPage路由=MaterialPage路由(
生成器:(上下文)=>导航GPS(
orderModel:orderModels[索引],
),
);
推送(上下文、路线);
}

您已经在
ListView.builder
中使用了
routeToGPS()
方法,该方法将
小部件
作为输入。方法
routeToGPS
的返回类型为
Future
,它不是
小部件
。这是导致问题的原因。问题是,如果条件正确,我想自动更改页面。它不能像这样工作。如果您需要类似的内容,您应该在initState()或其他生成器方法下检查它。好的,您可以接受并向上投票答案:)当然!!这对像我这样的初学者很有帮助D