gpt4 book ai didi

Flutter 组合可观察对象

转载 作者:IT王子 更新时间:2023-10-29 06:57:52 26 4
gpt4 key购买 nike

我想合并两个 observable 并在每个 then 发生变化时获得两个值。

根据 https://pub.dartlang.org/documentation/rxdart/latest/rx/Observable/combineLatest2.html及其大理石图,这正是我想要的。

所以,我有:

var observable = CombineLatestStream.combine2(_matchViewModel.lineUpPlayers, _matchViewModel.playerSelectedState, (lineUpPlayers, playerSelectedState) {
return [lineUpPlayers, playerSelectedState];
});

return Stack(children: <Widget>[
Align(
alignment: Alignment.topRight,
child: Padding(
padding: EdgeInsets.all(8.0),
child: _buildFormationSelector(match)
)),
StreamBuilder(stream: observable, builder: (context, snapshot) {
if(snapshot.data == null) {
return new CircularProgressIndicator();
} else {
Map<String, Player> lineUpPlayers = snapshot.data[0];
bool playerSelectedState = snapshot.data[1];
return Column(
mainAxisAlignment: MainAxisAlignment
.spaceEvenly,
children: _buildFormation(match, lineUpPlayers)
);
}
})
]);

问题是 snapshot.data 总是空的。

可观察对象(从 BehaviorSubject 创建以恢复插入流中的最后一个值)_matchViewModel.lineUpPlayers 和 _matchViewModel.playerSelectedState 正在其他 StreamBuilder 中使用,它们似乎工作正常。

这是怎么回事??

最佳答案

确保您在两个流中都发布一个事件,以便能够获得第一个值。

关于Flutter 组合可观察对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55148599/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com