在我的一个提供程序中,我想收听Stream
。为了清楚起见,我简化了代码,只使用int
值来表示Stream
。实际上,这可以是要监听的Firestore快照的Stream
。
class MyProvider with ChangeNotifier {
int _data = 0;
int get data => _data;
// called when app gets initialized
void init() {
// stream which is not updated often (e.g. snapshot listener from Firestore)
final stream = Stream<int>.periodic(
const Duration(minutes: 5),
(count) => count++,
);
stream.listen((event) {
_data = event;
notifyListeners();
});
}
}
是否可以在Provider内部监听流,或者是否需要考虑一些问题?
我不想使用StreamProvider
,因为我的ChangeNotifierProvider
中有更多的业务逻辑,这是StreamProvider
不可能实现的。
1条答案
按热度按时间kuuvgm7e1#
考虑将业务逻辑重构为单独的组件,然后使用
StreamProvider
。如果这不可能,在我看来,根据流数据更新更改通知程序也没有错。