哪个更好?将状态从父级传递到子级还是为每个子级创建一个构建块?(USING PACKAGE flutter_bloc)
BlocProvider(
create: (context) => ExampleBloc(),
child: BlocBuilder<ExampleBloc, ExampleState>(
builder(context, state) {
return Column(
children: [
Widget1(state.value), <- pass state to prop
Widget2(), <- consume the state in bloc builder
]
)
}
)
)
//stateless widget
Widget1(state) {
return Text(state)
}
//stateless widget
Widget2() {
return BlocBuilder<ExampleBloc, ExampleState>(
builder: (context, state) {
return Text(state)
}
)
}
1条答案
按热度按时间mepcadol1#
使用BlocBuilder。Providers的全部(或者至少是最大的)要点是提供东西而不传递参数。线索就在名称中。所以使用BlocBuilder来获取提供的状态。
BlocBuilder将侦听状态更改并在发生更改时进行重建。
此外,您可以使用buildWhen属性在BlocBuilder上添加条件,以确定何时应该重建小部件,这将非常容易地优化重建。