刷新列表视图

问题描述 投票:0回答:1

一旦收到ListView扑朔迷离的通知,刷新它的最佳方法是什么?在pageA的示例中,我有一个listView。收到推送通知时,我希望页面A listView刷新。

我使用bloc作为我的项目,但不确定如何刷新它。

main.dart

  _firebaseMessaging.configure(
        onMessage: (Map<String, dynamic> message) async {
          print("===== onMessage ====");
          // call PageA initState to refresh listView
      );

PageA initState

  @override
  void initState() {
    super.initState();
      _pageABloc.getData();  //  retrieve from server
    });
  }

bloc

  final _abc = BehaviorSubject<List<ABC>>();
  get abcSink => _abc.sink;
  get abcStream => _abc.stream;


     Future getData() async {
        List<ABC> list = List<ABC>();

        try {
          var abc = await _repo.getData();
          abcSink.add(abc);
        } catch (e) {
          rethrow;
        }
      }
flutter dart stream bloc sink
1个回答
0
投票

如果使用BLoC,则所有输出均为Stream。如果您要刷新ListView,然后将其包装到StreamBuilder中,那么每次BloC发出新项目时,StreamBuilder都会使用新数据重新构建自身,然后可以将该数据传递给[ C0]。

© www.soinside.com 2019 - 2024. All rights reserved.