gpt4 book ai didi

flutter - Flutter bloc 监听器中的延迟状态检查

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

我通过 bloc 向服务器发送数据并显示 progressSnackBar期间,然后是successSnackBar关于成功。有时这需要不到一秒钟的时间,不显示 progressSnackBar 是有意义的。完全 - 换句话说 稍等一下,然后检查状态是否仍然是 UpdatingAccount .我尝试过不同的组合,但失败了,涉及 Future.delay(...)我大概可以做一个 setState hack 但是有没有办法在 bloc 监听器中实现这一点?

BlocListener<AccountBloc, AccountState>(
listener: (BuildContext context, state) {
if (state is UpdatingAccount) { // <-- delay this
Scaffold.of(context)
..hideCurrentSnackBar()
..showSnackBar(progressSnackBar());
} else if (state is AccountUpdated) {
Scaffold.of(context)
..hideCurrentSnackBar()
..showSnackBar(successSnackBar());
}
},
// rest...
),

最佳答案

我最终使小部件有状态并给它一个 _updated bool 成员。

BlocListener<AccountBloc, AccountState>(
listener: (BuildContext context, state) {
if (state is UpdatingAccount) {
_updated = false;
Future.delayed(Duration(seconds: 1), () {
if (!_updated) {
Scaffold.of(context)
..hideCurrentSnackBar()
..showSnackBar(progressSnackBar());
}
});
} else if (state is AccountUpdated) {
_updated = true;
Scaffold.of(context)
..hideCurrentSnackBar()
..showSnackBar(successSnackBar());
}
},
// rest...
),

关于flutter - Flutter bloc 监听器中的延迟状态检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59143436/

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