Flutter Bloc软件包,当本机代码从dart

时间:2019-11-07 09:44:27

标签: flutter dart bloc

在我的集团中,我有2个视频流。一个是mapEventToState,我可以在其中产生状态,然后创建了第二个,该状态从本机代码调用的函数中调用。

通话:

checkStatus(_internalState).listen((data){});

流:

Stream<VpnConnectionState> checkStatus(_internalState) async * {
switch (_internalState) {
  case state.down:
    yield down();
    break;
  case state.up:
    yield up();
    break;
}
_previousState = _internalState;
}

问题是当我yield流中的某个东西checkSatus没有到达我的BlocBuilder中时。从流mapEventToState中调用if的情况。

1 个答案:

答案 0 :(得分:2)

这些是完全不同的流。您的BlocBuilder不在mapEventToState上收听checkStatus流。从您的checkStatus流到您的区块的Dispatch(或最新版本的add)事件,然后在响应这些事件时在mapEventToState中产生新状态。

为简单起见,甚至摆脱了您的checkStatus流:

void checkStatus(_internalState) {
switch (_internalState) {
  case state.down:
     dispatch(DownEvent());
    break;
  case state.up:
    dispatch(UpEvent());
    break;
}
_previousState = _internalState;
}

void mapEventToSteam(Event event) {
    if(event is DownEvent) {
     yield DownState()
   }
    if(event is UpEvent) {
     yield UpState()
   }
相关问题