Flutter FutureBuilder逻辑

时间:2019-02-04 22:42:23

标签: asynchronous flutter

环顾网络,人们说我不应该在有状态小部件的build()中放入任何逻辑。相反,他们建议我将逻辑放入initState()中。 (https://github.com/flutter/flutter/issues/11426

但是,如果我在build()中使用FutureBuilder来返回不同的视图(进度指示器和实际页面),我该如何将处理FutureBuilder中数据的逻辑放在build()之外? / p>

2 个答案:

答案 0 :(得分:0)

在构建方法中包含 UI逻辑是可以的。您可以完全处理构建器主体中的FutureBuilder数据。实际上,这是您应该执行的操作。

该问题中的建议反对例如触发内部版本的网络调用。

答案 1 :(得分:0)

为了提供更多的见解,在FutureBuilder中,我有一个按钮可以将我带到“编辑”页面。编辑页面上附有许多不同的视图,每当我回到编辑页面“提交”我的编辑时,FutureBuilder都会触发并导致我所做的编辑消失。

我通过在FutureBuilder中解耦UI和数据来解决此问题,以便FutureBuilder不会继续在后台构建并导致我的编辑页面意外更新。我的解决方案感到有些困惑,但是经过数小时的拔头发,我很满意它的效果;)