Flutter 颤振联合观测

Flutter 颤振联合观测,flutter,stream,observable,rxdart,combinelatest,Flutter,Stream,Observable,Rxdart,Combinelatest,我想合并两个观察值,当每个都改变时,得到两个值 根据它的大理石图,这正是我想要的 因此,我: var observable = CombineLatestStream.combine2(_matchViewModel.lineUpPlayers, _matchViewModel.playerSelectedState, (lineUpPlayers, playerSelectedState) { return [lineUpPlayers, playerSelectedState]; }

我想合并两个观察值,当每个都改变时,得到两个值

根据它的大理石图,这正是我想要的

因此,我:

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)
            );
        }
    })
]);
var observable=CombinelateTestStream.combine2(_-matchViewModel.LineupPayers,_-matchViewModel.playerSelectedState,(LineupPayers,playerSelectedState){
返回[lineUpPlayers,playerSelectedState];
});
返回堆栈(子级:[
对齐(
对齐:alignment.topRight,
孩子:填充(
填充:边缘设置。全部(8.0),
子项:_buildFormationSelector(匹配)
)),
StreamBuilder(流:可观察,生成器:(上下文,快照){
如果(snapshot.data==null){
返回新的循环ProgressIndicator();
}否则{
Map lineUpPlayers=snapshot.data[0];
bool playerSelectedState=snapshot.data[1];
返回列(
mainAxisAlignment:mainAxisAlignment
,
子项:_buildFormation(匹配、线条图层)
);
}
})
]);
问题是snapshot.data始终为空

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


这是怎么回事

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

正如您所建议的,我没有设定\u matchViewModel.playerSelectedState的种子,因此这就是CombineRelatestStream.combine2没有流式传输数据的原因。