【发布时间】:2018-07-09 12:50:57
【问题描述】:
我正在尝试将两个 Http 请求的结果加载到一个列表项中(第二个请求是关于第一个请求结果项的获取详细信息)。 第一个请求获取加密货币列表。 第二个请求收集有关该货币的更多信息。
我想在两个单独的请求中完成这个的原因是,
- 数据来自不同的来源。
- 获得货币列表后,我想显示一个流程圈,意思是“保持冷静,正在加载详细信息”
我已经尝试过的是;
一个有状态的小部件有两种方法(都调用 setState),这是灾难性的。无限循环。
构建方法中有一个基本的 stateful-widget 和第二个子 stateful-widget。有效,但每当我向上或向下滚动时,列表都会重新呈现其项目,并且子 stateful-widget 会一次又一次地发出相同的 getPrice HTTP 请求。
一个继承小部件和一个无状态小部件。必须为这两种 HTTP 请求方法使用上下文。又造成了死循环。
目前,我大脑的一部分在喊“Redux 是正确处理这个问题的唯一方法”
您对如何处理这个问题有什么建议吗? 提前谢谢你。
【问题讨论】:
-
无限循环是什么意思?你很可能做错了什么。顺便说一句,拥有超过 2 年的经验,我从来不需要 redux
-
另外,这个问题可以归类为“基于意见”。在 stackoverflow 上应该避免这种情况,因为没有有限的答案。
-
我在 getCurrencyList 函数和 getCurrencyDetail 函数中触发了 setState。而我总是在 listView.builder 中调用 getCurrencyDetail。在设置状态之前,我将尝试在 getList 请求之后立即链接。
标签: flutter