我的 flutter 应用程序中有一个 Future Builder,它显示——Error : 如果json解析有错误数据:如果一切顺利装载机:如果需要时间一切正常。Future 正在调用一个“future”函数,该函数正在执行一些学生数据的获取请求,而“builder”正在显示它。我在同一页上有一个编辑对话框。我可以通过put请求编辑学生信息。问题是,当我单击编辑对话框中的表单字段时,我注意到获取请求自动发生了大约 10 次。当我保存编辑时,会出现一个确认对话框,表明数据已更新。当这种情况再次发生时,获取请求最多发生 10 次。然后它弹出。所以服务器上大约有 20 个无用的请求发生。我认为它发生是因为当我单击表单字段时,键盘出现并且底层显示小部件重建,调用 api。当数据被编辑时,键盘会再次回到原来的位置,小部件会重建,调用 api。我该如何解决这个问题?如果有帮助,这是代码: child: FutureBuilder( future: APIs().getStudentDetails(), builder: (context, data) { if (data.hasError) { return Padding( padding: const EdgeInsets.all(8), child: Center(child: Text("${data.error}"))); } else if (data.hasData) { var studentData = data.data as List<StudentDetails>; return Padding( padding: const EdgeInsets.fromLTRB(0, 15, 0, 0), child: SingleChildScrollView( child: SizedBox( height: MediaQuery.of(context).size.height * 0.9, child: ListView.builder( itemCount: studentData.length, itemBuilder: ((context, index) { final student = studentData[index]; final id = student.studentId; final father = student.fatherName; final mother = student.motherName; final cg = student.cg; },
3 回答

冉冉说
TA贡献1877条经验 获得超1个赞

SMILET
TA贡献1796条经验 获得超4个赞
future
为like创建一个状态变量
late final future = APIs().getStudentDetails();
并使用
FutureBuilder( future: future ,
您可以检查Fixing a common FutureBuilder and StreamBuilder problem

慕容708150
TA贡献1831条经验 获得超4个赞
class _YourWidgetState extends State<YourWidget> with AutomaticKeepAliveClientMixin<YourWidget> {
@override
bool get wantKeepAlive => true;
因此,使用 AutomaticKeepAliveClientMixin 扩展您的 Widget,这样 Listview 中的项目将不会被复制
- 3 回答
- 0 关注
- 118 浏览
添加回答
举报
0/150
提交
取消