【发布时间】:2022-01-19 12:00:00
【问题描述】:
为了演示这个问题,让我为FutureBuilder写一些代码。
FutureBuilder(future: _myFuture, builder: (context, snapshot) {
if(snapshot.hasData) {
// !!!! IMPORTANT !!!
// Pay attention to the _isFirstText variable below
return SizedBox(
child: _isFirstText ? Text(snapshot.data.firstText) : Text(snapshot.data.secondText),
);
}
if(snapshot.connectionState == ConnectionState.isWaiting) {
return Text('Waiting!');
}
return Text('Error');
}),
正如我在上面代码的注释中提到的,注意_isFirstText 变量。假设这是一个状态变量。 在future builder内部,如何获取isFirstText状态变量变化对应的正确返回值。
我也遇到了this stack overflow post,但无法让代码工作。
我还遇到了一个名为 StatefulBuilder 的小部件,但我不知道应该在我的 FutureBuilder 的哪个位置使用它。
有人可以帮忙吗?
【问题讨论】:
-
这能回答你的问题吗? Flutter StreamBuilder vs FutureBuilder
-
@staticVoidMan 感谢您的回复。根据答案,流保持与服务器的持续连接并根据服务器的更改更新 UI 对吗?但我不想从服务器端监听变化。我想监听局部状态变量的变化。你知道怎么做吗?谢谢!
标签: flutter flutter-futurebuilder dart-async flutter-state flutter-future