按下后退按钮时,不刷新Flutter流

时间:2020-08-05 23:26:32

标签: flutter

我的主屏幕上有一个玩家列表,该列表来自数据库中的“ BLoC”

final _myPlayersFetcher = PublishSubject<ApiResponse<List<Player>>>();
Stream<ApiResponse<List<Player>>> get myPlayerStream => _myPlayersFetcher.stream;

fetchPlayers() async {
    try {
        List<Player> myPlayers = await _repository.fetchAllMyPlayers(); // fetch players list from sqflite database
        _myPlayersFetcher.sink.add(ApiResponse.completed(myPlayers));
    } catch (e) {
        _myPlayersFetcher.sink.add(ApiResponse.error(e.toString()));
    }
}

// my stream builder
StreamBuilder(
    stream: bloc.myPlayerStream,
    builder: (context, AsyncSnapshot<ApiResponse<List<MyContact>>> snapshot) {
        // my data
    },
)

,我还有另一个屏幕用来将播放器添加到数据库中,添加新播放器后,我致电bloc.fetchPlayers(),它将获得包含新添加的播放器的新列表,并将其沉入流中,问题是当我单击“后退”按钮返回到主屏幕时,我找不到新添加的播放器,这很奇怪,因为在将新播放器插入数据库后,我调用了bloc.fetchPlayers()fetchPlayers()方法内的一个'print(player.name)',以确保新播放器存在于接收到流的列表中,并且在那里,但是当我走时它不出现回到主流。我希望我对这个问题的解释清楚

0 个答案:

没有答案