我是flutter_bloc
的新手,需要一些清晰度。
我正在开发一个类似于TikTok的应用程序,它有一个PageView
和VideoPlayer
s。我想切换屏幕上的Like
、Save
和Follow
按钮。父部件已经 Package 在FeedBloc
BlocBuilder
中,那么在不使用StatefulWidgets
的情况下,我应该如何处理更新部件?
在Provider
中,我们只需要在任何需要的地方使用Selector
或Consumer
小部件,然后调用notifyListerners()
。在flutter_bloc
中,notifyListeners()
的替代方案是什么?
我只想在变量值改变而state
保持不变时更新小部件。
2条答案
按热度按时间eqoofvh91#
你也可以使用
emit
。只要确保状态是可比较的。因此,可以使用equals和hashcode区分相同状态的两个版本。pdkcd3nj2#
当你在provider中使用notifyListeners()时,基本上,这意味着你想根据不同的状态更新这个值,但是bloc是在流上工作的,你需要发出状态,比如如果你的应用处于初始状态,那么你发出你的初始widget,在加载状态,你可以通过bloc发出你的加载状态。
但如果你想知道是否有类似的相关消费者那么答案是肯定的。Bloc Builder是一个基于不同事件重建小部件的小部件。
bloc.dart
从上面的示例代码中,您可以理解块是如何基于不同的状态和事件工作的。