使用带有块模式的 RefreshIndicator 小部件的问题

5 dart pull-to-refresh flutter bloc

我有一个名为 A 的Stateless类,它是一个类,我有一个名为 B 的Stateful类,它是一个类

A类的build方法如下

@override
  Widget build(BuildContext context) {
    return BlocProvider(
      bloc: DashboardListBloc(),
      child: Scaffold(
          body: SingleChildScrollView(
        child: Column(
          children: <Widget>[
            SafeArea(child: _dashboardAppBar(context)),
            SizedBox(
              height: 10.0,
            ),
            B() // this is class B
          ],
        ),
      )),
    );
Run Code Online (Sandbox Code Playgroud)

我宣布在B级我的阵营对象类A的身体假设,我换SingleChildScrollViewRefreshIndicator,所以如何在其更新特性我应该叫阵营类的其参考在B类中定义的方法

我想把所有东西都移到 B 类并删除 A 类,但这会导致另一个问题,因为我必须Bloc在 init 方法中初始化并且在构建之前调用 init,bloc 将始终导致 null,因为我将BlocProvider InheritedWidget在 B 类的构建方法中使用

Had*_*san 0

您应该创建一个单一的块实例并将其提供给这两个类。换句话说,您的块不应该在类 B 中创建,而是您可以通过用 a 包装 A 和 B 的任何公共父级(例如您的 App 小部件)并使用该 BlocProvider方法来创建您的块create。然后在任何子小部件中,您可以执行BlocProvider.of<MyBloc>()or操作context.read<MyBloc>(),这样 A 类和 B 类将共享同一个 Bloc 实例。