我在颤动的BlocListener中调用setState。这样做有什么问题吗?
....
return BlocListener<XBloc, XState>(
listener: (context, state) {
if (state is XLoadedState) {
setState(() {
name = state.name;
});
}....
....
答案 0 :(得分:0)
这不是问题,但是有点无用和反模式。使用setState
会强制所有内容进行重建,即使没有必要。
您可以将使用name
的小部件包装到BlocBuilder<XBloc,XState>
中,例如:
BlocBuilder<XBloc,XState>(
builder: (context, state){
if (state is XLoadedState){
return Text(state.name);
}else{
//return something for when state.name is null, I guess
}
}
)
您可以查看有关此here
的更多信息