这是我的代码。
Future<void> SendOrderDetails() async{
Row(
children: [
FutureBuilder(
future: topcart.getData(),
builder: (context, AsyncSnapshot<List<Cart>> snapshot) {
for(int i = 0; i<itemcount; i++)
{
if(itemcount>listModel2.data!.length) {
listModel2.data?.add(Model2(
ORDER_INFO_ID: 1,
PRODUCT_ED_ID: 2,
QTY: quantitycalcule.toString(),
UNIT_PRICE:'00',// snapshot.data![i].Book_initional_price!.toString(),
CHGED_BY:1,
CHGED_DATE: DateTime.now().toString(),
STATUS: 'P',
),);
}
}
return const Text('');
}
),
],
);
}
调用此函数时,“FutureBuilder”未运行。If条件中需要“快照”。请帮助我。
2条答案
按热度按时间qmelpv7a1#
我不确定您的代码试图完成什么,但我可以看到有几件事可能会导致问题:
1.你在一个Future中调用FutureBuilder,而在你的Future中没有等待,所以它真的不会正常工作。
FutureBuilder的全部意义在于基于与Future交互的最新快照来构建自己。也许你可以解释为什么这种结构是这样的。
1.理想情况下,在FutureBuilder()中,您希望检查连接和数据,例如:
cwtwac6a2#
这个方法什么都不返回,所以你没有办法检查未来的构建器是否运行,尝试使用打印和检查你的调试控制台(或尝试通过使用断点调试你的代码),如果它工作,然后做任何你想做的额外问题:您正在使用什么状态管理?