【发布时间】:2023-04-10 11:52:01
【问题描述】:
我正在使用 bloc 设计模式,当我从屏幕 1 导航屏幕 2 时,dispose 方法正在触发,因此我的流正在关闭。在我从屏幕 2 弹出之后,我返回屏幕 1。但在这种情况下,我的块仍在内存中,当我想向流中添加数据时,我收到 Bad state: Cannot add new events after calling close 错误。我需要在弹出后调用 initstate 或 didchangedependecies 方法来再次初始化我的 bloc。有没有办法做到这一点?
很快我需要再次初始化我的集团。这就是我尝试过的。但是这个方法在从另一个屏幕弹出后不会触发。
DeckBloc deckBloc;
@override
void initState() {
deckBloc = new DeckBloc();
super.initState();
}
@override
void didChangeDependencies() {
deckBloc = new DeckBloc();
super.didChangeDependencies();
}
【问题讨论】: