gpt4 book ai didi

flutter - 弹出堆栈后如何调用initstate或didchangedependencies

转载 作者:行者123 更新时间:2023-12-03 03:31:47 25 4
gpt4 key购买 nike

我正在使用块设计模式,当我从屏幕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();
}

最佳答案

当您要导航到第二页时,首先要等待结果,然后在进行的导航的结果回调中重新初始化您的bloc。

Navigator.of(context).pushNamed<void>('second page route')
.then((result){
//this block of code will run when you pop from the second page and navigate back here
//initialize your bloc here
deckBloc = new DeckBloc();
});

关于flutter - 弹出堆栈后如何调用initstate或didchangedependencies,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63524224/

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