Flutter 同一树中同一立方体(局部范围)的不同实例

Flutter 同一树中同一立方体(局部范围)的不同实例,flutter,Flutter,在树中创建同一块/立方体的多个实例是一种不好的做法吗?我正在创建cubit的一个实例,并在树中的几个位置使用它,就像这样 BlocBuilder<BlocA, BlocAState>( cubit: blocA, // provide the local cubit instance builder: (context, state) { // return widget here based on BlocA's state } ) BlocBuilder(

在树中创建同一块/立方体的多个实例是一种不好的做法吗?我正在创建cubit的一个实例,并在树中的几个位置使用它,就像这样

BlocBuilder<BlocA, BlocAState>(
  cubit: blocA, // provide the local cubit instance
  builder: (context, state) {
    // return widget here based on BlocA's state
  }
)
BlocBuilder(
cubit:blocA,//提供本地cubit实例
生成器:(上下文、状态){
//根据BlocA的状态在此处返回小部件
}
)

。。。但是,使用这种方法,这些区块的范围仅限于一个小部件。我在小部件树中使用了3次这种技术(将我的小部件划分为不同的类)。我的控制台正在从
BlocObserver
中吐出几个有问题的bloc实例。bloc“起作用”,但我怀疑我的做法不正确……

似乎您误解了向小部件树提供bloc实例的核心概念。您需要
BlocBuilder
为依赖于bloc的小部件设置
BuildContext
,并最小化小部件的范围,这些小部件将被标记为根据bloc更改进行重建。
是的,拥有多个bloc实例是非常糟糕的做法,因为这几乎会使它对你的应用程序无效。要为小部件提供单个实例,请使用
BlocProvider
BlocProvider.value
,有关它的详细信息,您可以检查或是否在
BlocBuilder
中创建bloc实例?