Flutter杂货APP商品加载失败:空Grid问题求助
问题排查与修复方案
1. API请求参数传反(致命错误)
在HomeRepository的getAllProducts方法中,restRequest的url和method参数完全传反,导致请求发送到了错误地址,直接引发空数据返回:
// 错误代码 final result = await _httpManager.restRequest( url: HttpMethods.post, method: EndPoints.getAllProducts, body: body, );
修复:
交换url和method参数值:
// 正确代码 final result = await _httpManager.restRequest( url: EndPoints.getAllProducts, method: HttpMethods.post, body: body, );
2. 获取商品后未触发UI刷新
在HomeController的getAllProducts方法中,成功获取商品列表后仅更新了数据,但未调用update()通知GetX刷新UI,导致GridView无法感知数据变化:
// 错误代码 success: (data) { currentCategory!.items = data; },
修复:
添加update()调用触发UI更新:
// 正确代码 success: (data) { currentCategory!.items = data; update(); },
3. 额外验证点
- 确认
currentCategory!.pagination初始值是否符合后端接口的页码规则(比如后端是否从1开始计数而非0) - 核对
ItemModel的字段映射是否完全匹配后端返回的JSON结构(若后端id字段为objectId,需添加@JsonKey(name: "objectId")注解) - 检查
HttpManager是否配置了Back4App必需的请求头(如X-Parse-Application-Id、X-Parse-REST-API-Key),缺失认证头会导致请求被拒绝
内容的提问来源于stack exchange,提问作者Dennis Castro
相关产品推荐
相关产品推荐

